From c7cb91a623bb1076a472c2b4bd0ef28d2dfdfe36 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Tue, 18 Apr 2023 23:52:02 +0300 Subject: [PATCH 001/246] added weather 16-days --- lib/app/api/api.dart | 12 +- lib/app/api/daily.dart | 18 +- lib/app/controller/controller.dart | 13 +- lib/app/data/weather.dart | 16 + lib/app/data/weather.g.dart | 1978 +++++++++++++++++++++++++--- lib/app/modules/about.dart | 2 +- lib/app/modules/weather.dart | 59 +- lib/app/modules/weather_card.dart | 50 +- lib/app/widgets/weather_more.dart | 54 + lib/translation/translation.dart | 8 + 10 files changed, 1998 insertions(+), 212 deletions(-) create mode 100644 lib/app/widgets/weather_more.dart diff --git a/lib/app/api/api.dart b/lib/app/api/api.dart index 6a31035..67166e2 100644 --- a/lib/app/api/api.dart +++ b/lib/app/api/api.dart @@ -27,7 +27,7 @@ class WeatherAPI { : urlHourly = baseUrlHourly; String baseUrlDaily = - 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,sunrise,sunset&timezone=auto&forecast_days=7'; + 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,windspeed_10m_max&forecast_days=16&timezone=auto'; String urlDaily; settings.degrees == 'fahrenheit' ? urlDaily = '$baseUrlDaily&temperature_unit=fahrenheit' @@ -58,8 +58,12 @@ class WeatherAPI { weathercodeDaily: weatherDataDaily.daily.weathercode, temperature2MMax: weatherDataDaily.daily.temperature2MMax, temperature2MMin: weatherDataDaily.daily.temperature2MMin, + apparentTemperatureMax: weatherDataDaily.daily.apparentTemperatureMax, + apparentTemperatureMin: weatherDataDaily.daily.apparentTemperatureMin, sunrise: weatherDataDaily.daily.sunrise, sunset: weatherDataDaily.daily.sunset, + precipitationSum: weatherDataDaily.daily.precipitationSum, + windspeed10MMax: weatherDataDaily.daily.windspeed10MMax, timezone: weatherDataHourly.timezone, timestamp: DateTime.now(), ); @@ -113,7 +117,7 @@ class WeatherAPI { : urlHourly = baseUrlHourly; String baseUrlDaily = - 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,sunrise,sunset&timezone=auto&forecast_days=7'; + 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,windspeed_10m_max&forecast_days=16&timezone=auto'; String urlDaily; settings.degrees == 'fahrenheit' ? urlDaily = '$baseUrlDaily&temperature_unit=fahrenheit' @@ -144,8 +148,12 @@ class WeatherAPI { weathercodeDaily: weatherDataDaily.daily.weathercode, temperature2MMax: weatherDataDaily.daily.temperature2MMax, temperature2MMin: weatherDataDaily.daily.temperature2MMin, + apparentTemperatureMax: weatherDataDaily.daily.apparentTemperatureMax, + apparentTemperatureMin: weatherDataDaily.daily.apparentTemperatureMin, sunrise: weatherDataDaily.daily.sunrise, sunset: weatherDataDaily.daily.sunset, + precipitationSum: weatherDataDaily.daily.precipitationSum, + windspeed10MMax: weatherDataDaily.daily.windspeed10MMax, lat: lat, lon: lon, city: city, diff --git a/lib/app/api/daily.dart b/lib/app/api/daily.dart index 3767959..f382fb9 100644 --- a/lib/app/api/daily.dart +++ b/lib/app/api/daily.dart @@ -13,20 +13,28 @@ class WeatherDailyApi { class Daily { Daily({ - this.time, + required this.time, this.weathercode, this.temperature2MMax, this.temperature2MMin, + this.apparentTemperatureMax, + this.apparentTemperatureMin, this.sunrise, this.sunset, + this.precipitationSum, + this.windspeed10MMax, }); List? time; List? weathercode; List? temperature2MMax; List? temperature2MMin; + List? apparentTemperatureMax; + List? apparentTemperatureMin; List? sunrise; List? sunset; + List? precipitationSum; + List? windspeed10MMax; factory Daily.fromJson(Map json) => Daily( time: List.from(json["time"].map((x) => DateTime.parse(x))), @@ -35,7 +43,15 @@ class Daily { List.from(json["temperature_2m_max"].map((x) => x)), temperature2MMin: List.from(json["temperature_2m_min"].map((x) => x)), + apparentTemperatureMax: + List.from(json["apparent_temperature_max"].map((x) => x)), + apparentTemperatureMin: + List.from(json["apparent_temperature_min"].map((x) => x)), sunrise: List.from(json["sunrise"].map((x) => x)), sunset: List.from(json["sunset"].map((x) => x)), + precipitationSum: + List.from(json["precipitation_sum"].map((x) => x)), + windspeed10MMax: + List.from(json["windspeed_10m_max"].map((x) => x)), ); } diff --git a/lib/app/controller/controller.dart b/lib/app/controller/controller.dart index 4b83888..78c5c9a 100644 --- a/lib/app/controller/controller.dart +++ b/lib/app/controller/controller.dart @@ -25,7 +25,6 @@ class LocationController extends GetxController { double get longitude => _longitude.value; final _mainWeather = MainWeatherCache().obs; - final _location = LocationCache().obs; final _weatherCard = WeatherCard().obs; @@ -294,8 +293,14 @@ class LocationController extends GetxController { element.weathercodeDaily = _weatherCard.value.weathercodeDaily; element.temperature2MMax = _weatherCard.value.temperature2MMax; element.temperature2MMin = _weatherCard.value.temperature2MMin; + element.apparentTemperatureMax = + _weatherCard.value.apparentTemperatureMax; + element.apparentTemperatureMin = + _weatherCard.value.apparentTemperatureMin; element.sunrise = _weatherCard.value.sunrise; element.sunset = _weatherCard.value.sunset; + element.precipitationSum = _weatherCard.value.precipitationSum; + element.windspeed10MMax = _weatherCard.value.windspeed10MMax; element.timestamp = DateTime.now(); await isar.weatherCards.put(element); } @@ -329,8 +334,14 @@ class LocationController extends GetxController { weatherCard.weathercodeDaily = _weatherCard.value.weathercodeDaily; weatherCard.temperature2MMax = _weatherCard.value.temperature2MMax; weatherCard.temperature2MMin = _weatherCard.value.temperature2MMin; + weatherCard.apparentTemperatureMax = + _weatherCard.value.apparentTemperatureMax; + weatherCard.apparentTemperatureMin = + _weatherCard.value.apparentTemperatureMin; weatherCard.sunrise = _weatherCard.value.sunrise; weatherCard.sunset = _weatherCard.value.sunset; + weatherCard.precipitationSum = _weatherCard.value.precipitationSum; + weatherCard.windspeed10MMax = _weatherCard.value.windspeed10MMax; weatherCard.timestamp = DateTime.now(); await isar.weatherCards.put(weatherCard); }); diff --git a/lib/app/data/weather.dart b/lib/app/data/weather.dart index 39d6f8a..e95c0d8 100644 --- a/lib/app/data/weather.dart +++ b/lib/app/data/weather.dart @@ -36,8 +36,12 @@ class MainWeatherCache { List? weathercodeDaily; List? temperature2MMax; List? temperature2MMin; + List? apparentTemperatureMax; + List? apparentTemperatureMin; List? sunrise; List? sunset; + List? precipitationSum; + List? windspeed10MMax; String? timezone; DateTime? timestamp; @@ -60,8 +64,12 @@ class MainWeatherCache { this.weathercodeDaily, this.temperature2MMax, this.temperature2MMin, + this.apparentTemperatureMax, + this.apparentTemperatureMin, this.sunrise, this.sunset, + this.precipitationSum, + this.windspeed10MMax, this.timezone, this.timestamp, }); @@ -104,8 +112,12 @@ class WeatherCard { List? weathercodeDaily; List? temperature2MMax; List? temperature2MMin; + List? apparentTemperatureMax; + List? apparentTemperatureMin; List? sunrise; List? sunset; + List? precipitationSum; + List? windspeed10MMax; double? lat; double? lon; String? city; @@ -132,8 +144,12 @@ class WeatherCard { this.weathercodeDaily, this.temperature2MMax, this.temperature2MMin, + this.apparentTemperatureMax, + this.apparentTemperatureMin, this.sunrise, this.sunset, + this.precipitationSum, + this.windspeed10MMax, this.lat, this.lon, this.city, diff --git a/lib/app/data/weather.g.dart b/lib/app/data/weather.g.dart index 9db4eeb..4ae6791 100644 --- a/lib/app/data/weather.g.dart +++ b/lib/app/data/weather.g.dart @@ -1092,110 +1092,130 @@ const MainWeatherCacheSchema = CollectionSchema( name: r'apparentTemperature', type: IsarType.doubleList, ), - r'cloudcover': PropertySchema( + r'apparentTemperatureMax': PropertySchema( id: 1, + name: r'apparentTemperatureMax', + type: IsarType.doubleList, + ), + r'apparentTemperatureMin': PropertySchema( + id: 2, + name: r'apparentTemperatureMin', + type: IsarType.doubleList, + ), + r'cloudcover': PropertySchema( + id: 3, name: r'cloudcover', type: IsarType.longList, ), r'evapotranspiration': PropertySchema( - id: 2, + id: 4, name: r'evapotranspiration', type: IsarType.doubleList, ), r'precipitation': PropertySchema( - id: 3, + id: 5, name: r'precipitation', type: IsarType.doubleList, ), + r'precipitationSum': PropertySchema( + id: 6, + name: r'precipitationSum', + type: IsarType.doubleList, + ), r'rain': PropertySchema( - id: 4, + id: 7, name: r'rain', type: IsarType.doubleList, ), r'relativehumidity2M': PropertySchema( - id: 5, + id: 8, name: r'relativehumidity2M', type: IsarType.longList, ), r'sunrise': PropertySchema( - id: 6, + id: 9, name: r'sunrise', type: IsarType.stringList, ), r'sunset': PropertySchema( - id: 7, + id: 10, name: r'sunset', type: IsarType.stringList, ), r'surfacePressure': PropertySchema( - id: 8, + id: 11, name: r'surfacePressure', type: IsarType.doubleList, ), r'temperature2M': PropertySchema( - id: 9, + id: 12, name: r'temperature2M', type: IsarType.doubleList, ), r'temperature2MMax': PropertySchema( - id: 10, + id: 13, name: r'temperature2MMax', type: IsarType.doubleList, ), r'temperature2MMin': PropertySchema( - id: 11, + id: 14, name: r'temperature2MMin', type: IsarType.doubleList, ), r'time': PropertySchema( - id: 12, + id: 15, name: r'time', type: IsarType.stringList, ), r'timeDaily': PropertySchema( - id: 13, + id: 16, name: r'timeDaily', type: IsarType.dateTimeList, ), r'timestamp': PropertySchema( - id: 14, + id: 17, name: r'timestamp', type: IsarType.dateTime, ), r'timezone': PropertySchema( - id: 15, + id: 18, name: r'timezone', type: IsarType.string, ), r'uvIndex': PropertySchema( - id: 16, + id: 19, name: r'uvIndex', type: IsarType.doubleList, ), r'visibility': PropertySchema( - id: 17, + id: 20, name: r'visibility', type: IsarType.doubleList, ), r'weathercode': PropertySchema( - id: 18, + id: 21, name: r'weathercode', type: IsarType.longList, ), r'weathercodeDaily': PropertySchema( - id: 19, + id: 22, name: r'weathercodeDaily', type: IsarType.longList, ), r'winddirection10M': PropertySchema( - id: 20, + id: 23, name: r'winddirection10M', type: IsarType.longList, ), r'windspeed10M': PropertySchema( - id: 21, + id: 24, name: r'windspeed10M', type: IsarType.doubleList, + ), + r'windspeed10MMax': PropertySchema( + id: 25, + name: r'windspeed10MMax', + type: IsarType.doubleList, ) }, estimateSize: _mainWeatherCacheEstimateSize, @@ -1224,6 +1244,18 @@ int _mainWeatherCacheEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.apparentTemperatureMax; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } + { + final value = object.apparentTemperatureMin; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } { final value = object.cloudcover; if (value != null) { @@ -1242,6 +1274,12 @@ int _mainWeatherCacheEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.precipitationSum; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } { final value = object.rain; if (value != null) { @@ -1362,6 +1400,12 @@ int _mainWeatherCacheEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.windspeed10MMax; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } return bytesCount; } @@ -1372,27 +1416,31 @@ void _mainWeatherCacheSerialize( Map> allOffsets, ) { writer.writeDoubleList(offsets[0], object.apparentTemperature); - writer.writeLongList(offsets[1], object.cloudcover); - writer.writeDoubleList(offsets[2], object.evapotranspiration); - writer.writeDoubleList(offsets[3], object.precipitation); - writer.writeDoubleList(offsets[4], object.rain); - writer.writeLongList(offsets[5], object.relativehumidity2M); - writer.writeStringList(offsets[6], object.sunrise); - writer.writeStringList(offsets[7], object.sunset); - writer.writeDoubleList(offsets[8], object.surfacePressure); - writer.writeDoubleList(offsets[9], object.temperature2M); - writer.writeDoubleList(offsets[10], object.temperature2MMax); - writer.writeDoubleList(offsets[11], object.temperature2MMin); - writer.writeStringList(offsets[12], object.time); - writer.writeDateTimeList(offsets[13], object.timeDaily); - writer.writeDateTime(offsets[14], object.timestamp); - writer.writeString(offsets[15], object.timezone); - writer.writeDoubleList(offsets[16], object.uvIndex); - writer.writeDoubleList(offsets[17], object.visibility); - writer.writeLongList(offsets[18], object.weathercode); - writer.writeLongList(offsets[19], object.weathercodeDaily); - writer.writeLongList(offsets[20], object.winddirection10M); - writer.writeDoubleList(offsets[21], object.windspeed10M); + writer.writeDoubleList(offsets[1], object.apparentTemperatureMax); + writer.writeDoubleList(offsets[2], object.apparentTemperatureMin); + writer.writeLongList(offsets[3], object.cloudcover); + writer.writeDoubleList(offsets[4], object.evapotranspiration); + writer.writeDoubleList(offsets[5], object.precipitation); + writer.writeDoubleList(offsets[6], object.precipitationSum); + writer.writeDoubleList(offsets[7], object.rain); + writer.writeLongList(offsets[8], object.relativehumidity2M); + writer.writeStringList(offsets[9], object.sunrise); + writer.writeStringList(offsets[10], object.sunset); + writer.writeDoubleList(offsets[11], object.surfacePressure); + writer.writeDoubleList(offsets[12], object.temperature2M); + writer.writeDoubleList(offsets[13], object.temperature2MMax); + writer.writeDoubleList(offsets[14], object.temperature2MMin); + writer.writeStringList(offsets[15], object.time); + writer.writeDateTimeList(offsets[16], object.timeDaily); + writer.writeDateTime(offsets[17], object.timestamp); + writer.writeString(offsets[18], object.timezone); + writer.writeDoubleList(offsets[19], object.uvIndex); + writer.writeDoubleList(offsets[20], object.visibility); + writer.writeLongList(offsets[21], object.weathercode); + writer.writeLongList(offsets[22], object.weathercodeDaily); + writer.writeLongList(offsets[23], object.winddirection10M); + writer.writeDoubleList(offsets[24], object.windspeed10M); + writer.writeDoubleList(offsets[25], object.windspeed10MMax); } MainWeatherCache _mainWeatherCacheDeserialize( @@ -1403,27 +1451,31 @@ MainWeatherCache _mainWeatherCacheDeserialize( ) { final object = MainWeatherCache( apparentTemperature: reader.readDoubleList(offsets[0]), - cloudcover: reader.readLongList(offsets[1]), - evapotranspiration: reader.readDoubleList(offsets[2]), - precipitation: reader.readDoubleList(offsets[3]), - rain: reader.readDoubleList(offsets[4]), - relativehumidity2M: reader.readLongList(offsets[5]), - sunrise: reader.readStringList(offsets[6]), - sunset: reader.readStringList(offsets[7]), - surfacePressure: reader.readDoubleList(offsets[8]), - temperature2M: reader.readDoubleList(offsets[9]), - temperature2MMax: reader.readDoubleList(offsets[10]), - temperature2MMin: reader.readDoubleList(offsets[11]), - time: reader.readStringList(offsets[12]), - timeDaily: reader.readDateTimeList(offsets[13]), - timestamp: reader.readDateTimeOrNull(offsets[14]), - timezone: reader.readStringOrNull(offsets[15]), - uvIndex: reader.readDoubleList(offsets[16]), - visibility: reader.readDoubleList(offsets[17]), - weathercode: reader.readLongList(offsets[18]), - weathercodeDaily: reader.readLongList(offsets[19]), - winddirection10M: reader.readLongList(offsets[20]), - windspeed10M: reader.readDoubleList(offsets[21]), + apparentTemperatureMax: reader.readDoubleList(offsets[1]), + apparentTemperatureMin: reader.readDoubleList(offsets[2]), + cloudcover: reader.readLongList(offsets[3]), + evapotranspiration: reader.readDoubleList(offsets[4]), + precipitation: reader.readDoubleList(offsets[5]), + precipitationSum: reader.readDoubleList(offsets[6]), + rain: reader.readDoubleList(offsets[7]), + relativehumidity2M: reader.readLongList(offsets[8]), + sunrise: reader.readStringList(offsets[9]), + sunset: reader.readStringList(offsets[10]), + surfacePressure: reader.readDoubleList(offsets[11]), + temperature2M: reader.readDoubleList(offsets[12]), + temperature2MMax: reader.readDoubleList(offsets[13]), + temperature2MMin: reader.readDoubleList(offsets[14]), + time: reader.readStringList(offsets[15]), + timeDaily: reader.readDateTimeList(offsets[16]), + timestamp: reader.readDateTimeOrNull(offsets[17]), + timezone: reader.readStringOrNull(offsets[18]), + uvIndex: reader.readDoubleList(offsets[19]), + visibility: reader.readDoubleList(offsets[20]), + weathercode: reader.readLongList(offsets[21]), + weathercodeDaily: reader.readLongList(offsets[22]), + winddirection10M: reader.readLongList(offsets[23]), + windspeed10M: reader.readDoubleList(offsets[24]), + windspeed10MMax: reader.readDoubleList(offsets[25]), ); object.id = id; return object; @@ -1439,46 +1491,54 @@ P _mainWeatherCacheDeserializeProp

( case 0: return (reader.readDoubleList(offset)) as P; case 1: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 2: return (reader.readDoubleList(offset)) as P; case 3: - return (reader.readDoubleList(offset)) as P; + return (reader.readLongList(offset)) as P; case 4: return (reader.readDoubleList(offset)) as P; case 5: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 6: - return (reader.readStringList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 7: - return (reader.readStringList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 8: - return (reader.readDoubleList(offset)) as P; + return (reader.readLongList(offset)) as P; case 9: - return (reader.readDoubleList(offset)) as P; + return (reader.readStringList(offset)) as P; case 10: - return (reader.readDoubleList(offset)) as P; + return (reader.readStringList(offset)) as P; case 11: return (reader.readDoubleList(offset)) as P; case 12: - return (reader.readStringList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 13: - return (reader.readDateTimeList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 14: - return (reader.readDateTimeOrNull(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 15: - return (reader.readStringOrNull(offset)) as P; + return (reader.readStringList(offset)) as P; case 16: - return (reader.readDoubleList(offset)) as P; + return (reader.readDateTimeList(offset)) as P; case 17: - return (reader.readDoubleList(offset)) as P; + return (reader.readDateTimeOrNull(offset)) as P; case 18: - return (reader.readLongList(offset)) as P; + return (reader.readStringOrNull(offset)) as P; case 19: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 20: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 21: + return (reader.readLongList(offset)) as P; + case 22: + return (reader.readLongList(offset)) as P; + case 23: + return (reader.readLongList(offset)) as P; + case 24: + return (reader.readDoubleList(offset)) as P; + case 25: return (reader.readDoubleList(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); @@ -1752,6 +1812,352 @@ extension MainWeatherCacheQueryFilter }); } + QueryBuilder + apparentTemperatureMaxIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'apparentTemperatureMax', + )); + }); + } + + QueryBuilder + apparentTemperatureMaxIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'apparentTemperatureMax', + )); + }); + } + + QueryBuilder + apparentTemperatureMaxElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'apparentTemperatureMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMaxElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'apparentTemperatureMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMaxElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'apparentTemperatureMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMaxElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'apparentTemperatureMax', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMaxLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMax', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMaxIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMax', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMaxIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMax', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMaxLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMax', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + apparentTemperatureMaxLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMax', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMaxLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMax', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + + QueryBuilder + apparentTemperatureMinIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'apparentTemperatureMin', + )); + }); + } + + QueryBuilder + apparentTemperatureMinIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'apparentTemperatureMin', + )); + }); + } + + QueryBuilder + apparentTemperatureMinElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'apparentTemperatureMin', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMinElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'apparentTemperatureMin', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMinElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'apparentTemperatureMin', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMinElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'apparentTemperatureMin', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMinLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMin', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMinIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMin', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMinIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMin', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMinLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMin', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + apparentTemperatureMinLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMin', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMinLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMin', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + QueryBuilder cloudcoverIsNull() { return QueryBuilder.apply(this, (query) { @@ -2317,6 +2723,179 @@ extension MainWeatherCacheQueryFilter }); } + QueryBuilder + precipitationSumIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'precipitationSum', + )); + }); + } + + QueryBuilder + precipitationSumIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'precipitationSum', + )); + }); + } + + QueryBuilder + precipitationSumElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'precipitationSum', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + precipitationSumElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'precipitationSum', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + precipitationSumElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'precipitationSum', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + precipitationSumElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'precipitationSum', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + precipitationSumLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationSum', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + precipitationSumIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationSum', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + precipitationSumIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationSum', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + precipitationSumLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationSum', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + precipitationSumLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationSum', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + precipitationSumLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationSum', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + QueryBuilder rainIsNull() { return QueryBuilder.apply(this, (query) { @@ -5472,6 +6051,179 @@ extension MainWeatherCacheQueryFilter ); }); } + + QueryBuilder + windspeed10MMaxIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'windspeed10MMax', + )); + }); + } + + QueryBuilder + windspeed10MMaxIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'windspeed10MMax', + )); + }); + } + + QueryBuilder + windspeed10MMaxElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'windspeed10MMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windspeed10MMaxElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'windspeed10MMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windspeed10MMaxElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'windspeed10MMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windspeed10MMaxElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'windspeed10MMax', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windspeed10MMaxLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windspeed10MMax', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + windspeed10MMaxIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windspeed10MMax', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + windspeed10MMaxIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windspeed10MMax', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + windspeed10MMaxLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windspeed10MMax', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + windspeed10MMaxLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windspeed10MMax', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + windspeed10MMaxLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windspeed10MMax', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } } extension MainWeatherCacheQueryObject @@ -5564,6 +6316,20 @@ extension MainWeatherCacheQueryWhereDistinct }); } + QueryBuilder + distinctByApparentTemperatureMax() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'apparentTemperatureMax'); + }); + } + + QueryBuilder + distinctByApparentTemperatureMin() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'apparentTemperatureMin'); + }); + } + QueryBuilder distinctByCloudcover() { return QueryBuilder.apply(this, (query) { @@ -5585,6 +6351,13 @@ extension MainWeatherCacheQueryWhereDistinct }); } + QueryBuilder + distinctByPrecipitationSum() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'precipitationSum'); + }); + } + QueryBuilder distinctByRain() { return QueryBuilder.apply(this, (query) { return query.addDistinctBy(r'rain'); @@ -5708,6 +6481,13 @@ extension MainWeatherCacheQueryWhereDistinct return query.addDistinctBy(r'windspeed10M'); }); } + + QueryBuilder + distinctByWindspeed10MMax() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'windspeed10MMax'); + }); + } } extension MainWeatherCacheQueryProperty @@ -5725,6 +6505,20 @@ extension MainWeatherCacheQueryProperty }); } + QueryBuilder?, QQueryOperations> + apparentTemperatureMaxProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'apparentTemperatureMax'); + }); + } + + QueryBuilder?, QQueryOperations> + apparentTemperatureMinProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'apparentTemperatureMin'); + }); + } + QueryBuilder?, QQueryOperations> cloudcoverProperty() { return QueryBuilder.apply(this, (query) { @@ -5746,6 +6540,13 @@ extension MainWeatherCacheQueryProperty }); } + QueryBuilder?, QQueryOperations> + precipitationSumProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'precipitationSum'); + }); + } + QueryBuilder?, QQueryOperations> rainProperty() { return QueryBuilder.apply(this, (query) { @@ -5870,6 +6671,13 @@ extension MainWeatherCacheQueryProperty return query.addPropertyName(r'windspeed10M'); }); } + + QueryBuilder?, QQueryOperations> + windspeed10MMaxProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'windspeed10MMax'); + }); + } } // coverage:ignore-file @@ -6807,130 +7615,150 @@ const WeatherCardSchema = CollectionSchema( name: r'apparentTemperature', type: IsarType.doubleList, ), - r'city': PropertySchema( + r'apparentTemperatureMax': PropertySchema( id: 1, + name: r'apparentTemperatureMax', + type: IsarType.doubleList, + ), + r'apparentTemperatureMin': PropertySchema( + id: 2, + name: r'apparentTemperatureMin', + type: IsarType.doubleList, + ), + r'city': PropertySchema( + id: 3, name: r'city', type: IsarType.string, ), r'cloudcover': PropertySchema( - id: 2, + id: 4, name: r'cloudcover', type: IsarType.longList, ), r'district': PropertySchema( - id: 3, + id: 5, name: r'district', type: IsarType.string, ), r'evapotranspiration': PropertySchema( - id: 4, + id: 6, name: r'evapotranspiration', type: IsarType.doubleList, ), r'lat': PropertySchema( - id: 5, + id: 7, name: r'lat', type: IsarType.double, ), r'lon': PropertySchema( - id: 6, + id: 8, name: r'lon', type: IsarType.double, ), r'precipitation': PropertySchema( - id: 7, + id: 9, name: r'precipitation', type: IsarType.doubleList, ), + r'precipitationSum': PropertySchema( + id: 10, + name: r'precipitationSum', + type: IsarType.doubleList, + ), r'rain': PropertySchema( - id: 8, + id: 11, name: r'rain', type: IsarType.doubleList, ), r'relativehumidity2M': PropertySchema( - id: 9, + id: 12, name: r'relativehumidity2M', type: IsarType.longList, ), r'sunrise': PropertySchema( - id: 10, + id: 13, name: r'sunrise', type: IsarType.stringList, ), r'sunset': PropertySchema( - id: 11, + id: 14, name: r'sunset', type: IsarType.stringList, ), r'surfacePressure': PropertySchema( - id: 12, + id: 15, name: r'surfacePressure', type: IsarType.doubleList, ), r'temperature2M': PropertySchema( - id: 13, + id: 16, name: r'temperature2M', type: IsarType.doubleList, ), r'temperature2MMax': PropertySchema( - id: 14, + id: 17, name: r'temperature2MMax', type: IsarType.doubleList, ), r'temperature2MMin': PropertySchema( - id: 15, + id: 18, name: r'temperature2MMin', type: IsarType.doubleList, ), r'time': PropertySchema( - id: 16, + id: 19, name: r'time', type: IsarType.stringList, ), r'timeDaily': PropertySchema( - id: 17, + id: 20, name: r'timeDaily', type: IsarType.dateTimeList, ), r'timestamp': PropertySchema( - id: 18, + id: 21, name: r'timestamp', type: IsarType.dateTime, ), r'timezone': PropertySchema( - id: 19, + id: 22, name: r'timezone', type: IsarType.string, ), r'uvIndex': PropertySchema( - id: 20, + id: 23, name: r'uvIndex', type: IsarType.doubleList, ), r'visibility': PropertySchema( - id: 21, + id: 24, name: r'visibility', type: IsarType.doubleList, ), r'weathercode': PropertySchema( - id: 22, + id: 25, name: r'weathercode', type: IsarType.longList, ), r'weathercodeDaily': PropertySchema( - id: 23, + id: 26, name: r'weathercodeDaily', type: IsarType.longList, ), r'winddirection10M': PropertySchema( - id: 24, + id: 27, name: r'winddirection10M', type: IsarType.longList, ), r'windspeed10M': PropertySchema( - id: 25, + id: 28, name: r'windspeed10M', type: IsarType.doubleList, + ), + r'windspeed10MMax': PropertySchema( + id: 29, + name: r'windspeed10MMax', + type: IsarType.doubleList, ) }, estimateSize: _weatherCardEstimateSize, @@ -6959,6 +7787,18 @@ int _weatherCardEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.apparentTemperatureMax; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } + { + final value = object.apparentTemperatureMin; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } { final value = object.city; if (value != null) { @@ -6989,6 +7829,12 @@ int _weatherCardEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.precipitationSum; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } { final value = object.rain; if (value != null) { @@ -7109,6 +7955,12 @@ int _weatherCardEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.windspeed10MMax; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } return bytesCount; } @@ -7119,31 +7971,35 @@ void _weatherCardSerialize( Map> allOffsets, ) { writer.writeDoubleList(offsets[0], object.apparentTemperature); - writer.writeString(offsets[1], object.city); - writer.writeLongList(offsets[2], object.cloudcover); - writer.writeString(offsets[3], object.district); - writer.writeDoubleList(offsets[4], object.evapotranspiration); - writer.writeDouble(offsets[5], object.lat); - writer.writeDouble(offsets[6], object.lon); - writer.writeDoubleList(offsets[7], object.precipitation); - writer.writeDoubleList(offsets[8], object.rain); - writer.writeLongList(offsets[9], object.relativehumidity2M); - writer.writeStringList(offsets[10], object.sunrise); - writer.writeStringList(offsets[11], object.sunset); - writer.writeDoubleList(offsets[12], object.surfacePressure); - writer.writeDoubleList(offsets[13], object.temperature2M); - writer.writeDoubleList(offsets[14], object.temperature2MMax); - writer.writeDoubleList(offsets[15], object.temperature2MMin); - writer.writeStringList(offsets[16], object.time); - writer.writeDateTimeList(offsets[17], object.timeDaily); - writer.writeDateTime(offsets[18], object.timestamp); - writer.writeString(offsets[19], object.timezone); - writer.writeDoubleList(offsets[20], object.uvIndex); - writer.writeDoubleList(offsets[21], object.visibility); - writer.writeLongList(offsets[22], object.weathercode); - writer.writeLongList(offsets[23], object.weathercodeDaily); - writer.writeLongList(offsets[24], object.winddirection10M); - writer.writeDoubleList(offsets[25], object.windspeed10M); + writer.writeDoubleList(offsets[1], object.apparentTemperatureMax); + writer.writeDoubleList(offsets[2], object.apparentTemperatureMin); + writer.writeString(offsets[3], object.city); + writer.writeLongList(offsets[4], object.cloudcover); + writer.writeString(offsets[5], object.district); + writer.writeDoubleList(offsets[6], object.evapotranspiration); + writer.writeDouble(offsets[7], object.lat); + writer.writeDouble(offsets[8], object.lon); + writer.writeDoubleList(offsets[9], object.precipitation); + writer.writeDoubleList(offsets[10], object.precipitationSum); + writer.writeDoubleList(offsets[11], object.rain); + writer.writeLongList(offsets[12], object.relativehumidity2M); + writer.writeStringList(offsets[13], object.sunrise); + writer.writeStringList(offsets[14], object.sunset); + writer.writeDoubleList(offsets[15], object.surfacePressure); + writer.writeDoubleList(offsets[16], object.temperature2M); + writer.writeDoubleList(offsets[17], object.temperature2MMax); + writer.writeDoubleList(offsets[18], object.temperature2MMin); + writer.writeStringList(offsets[19], object.time); + writer.writeDateTimeList(offsets[20], object.timeDaily); + writer.writeDateTime(offsets[21], object.timestamp); + writer.writeString(offsets[22], object.timezone); + writer.writeDoubleList(offsets[23], object.uvIndex); + writer.writeDoubleList(offsets[24], object.visibility); + writer.writeLongList(offsets[25], object.weathercode); + writer.writeLongList(offsets[26], object.weathercodeDaily); + writer.writeLongList(offsets[27], object.winddirection10M); + writer.writeDoubleList(offsets[28], object.windspeed10M); + writer.writeDoubleList(offsets[29], object.windspeed10MMax); } WeatherCard _weatherCardDeserialize( @@ -7154,31 +8010,35 @@ WeatherCard _weatherCardDeserialize( ) { final object = WeatherCard( apparentTemperature: reader.readDoubleList(offsets[0]), - city: reader.readStringOrNull(offsets[1]), - cloudcover: reader.readLongList(offsets[2]), - district: reader.readStringOrNull(offsets[3]), - evapotranspiration: reader.readDoubleList(offsets[4]), - lat: reader.readDoubleOrNull(offsets[5]), - lon: reader.readDoubleOrNull(offsets[6]), - precipitation: reader.readDoubleList(offsets[7]), - rain: reader.readDoubleList(offsets[8]), - relativehumidity2M: reader.readLongList(offsets[9]), - sunrise: reader.readStringList(offsets[10]), - sunset: reader.readStringList(offsets[11]), - surfacePressure: reader.readDoubleList(offsets[12]), - temperature2M: reader.readDoubleList(offsets[13]), - temperature2MMax: reader.readDoubleList(offsets[14]), - temperature2MMin: reader.readDoubleList(offsets[15]), - time: reader.readStringList(offsets[16]), - timeDaily: reader.readDateTimeList(offsets[17]), - timestamp: reader.readDateTimeOrNull(offsets[18]), - timezone: reader.readStringOrNull(offsets[19]), - uvIndex: reader.readDoubleList(offsets[20]), - visibility: reader.readDoubleList(offsets[21]), - weathercode: reader.readLongList(offsets[22]), - weathercodeDaily: reader.readLongList(offsets[23]), - winddirection10M: reader.readLongList(offsets[24]), - windspeed10M: reader.readDoubleList(offsets[25]), + apparentTemperatureMax: reader.readDoubleList(offsets[1]), + apparentTemperatureMin: reader.readDoubleList(offsets[2]), + city: reader.readStringOrNull(offsets[3]), + cloudcover: reader.readLongList(offsets[4]), + district: reader.readStringOrNull(offsets[5]), + evapotranspiration: reader.readDoubleList(offsets[6]), + lat: reader.readDoubleOrNull(offsets[7]), + lon: reader.readDoubleOrNull(offsets[8]), + precipitation: reader.readDoubleList(offsets[9]), + precipitationSum: reader.readDoubleList(offsets[10]), + rain: reader.readDoubleList(offsets[11]), + relativehumidity2M: reader.readLongList(offsets[12]), + sunrise: reader.readStringList(offsets[13]), + sunset: reader.readStringList(offsets[14]), + surfacePressure: reader.readDoubleList(offsets[15]), + temperature2M: reader.readDoubleList(offsets[16]), + temperature2MMax: reader.readDoubleList(offsets[17]), + temperature2MMin: reader.readDoubleList(offsets[18]), + time: reader.readStringList(offsets[19]), + timeDaily: reader.readDateTimeList(offsets[20]), + timestamp: reader.readDateTimeOrNull(offsets[21]), + timezone: reader.readStringOrNull(offsets[22]), + uvIndex: reader.readDoubleList(offsets[23]), + visibility: reader.readDoubleList(offsets[24]), + weathercode: reader.readLongList(offsets[25]), + weathercodeDaily: reader.readLongList(offsets[26]), + winddirection10M: reader.readLongList(offsets[27]), + windspeed10M: reader.readDoubleList(offsets[28]), + windspeed10MMax: reader.readDoubleList(offsets[29]), ); object.id = id; return object; @@ -7194,54 +8054,62 @@ P _weatherCardDeserializeProp

( case 0: return (reader.readDoubleList(offset)) as P; case 1: - return (reader.readStringOrNull(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 2: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 3: return (reader.readStringOrNull(offset)) as P; case 4: - return (reader.readDoubleList(offset)) as P; - case 5: - return (reader.readDoubleOrNull(offset)) as P; - case 6: - return (reader.readDoubleOrNull(offset)) as P; - case 7: - return (reader.readDoubleList(offset)) as P; - case 8: - return (reader.readDoubleList(offset)) as P; - case 9: return (reader.readLongList(offset)) as P; + case 5: + return (reader.readStringOrNull(offset)) as P; + case 6: + return (reader.readDoubleList(offset)) as P; + case 7: + return (reader.readDoubleOrNull(offset)) as P; + case 8: + return (reader.readDoubleOrNull(offset)) as P; + case 9: + return (reader.readDoubleList(offset)) as P; case 10: - return (reader.readStringList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 11: - return (reader.readStringList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 12: - return (reader.readDoubleList(offset)) as P; + return (reader.readLongList(offset)) as P; case 13: - return (reader.readDoubleList(offset)) as P; + return (reader.readStringList(offset)) as P; case 14: - return (reader.readDoubleList(offset)) as P; + return (reader.readStringList(offset)) as P; case 15: return (reader.readDoubleList(offset)) as P; case 16: - return (reader.readStringList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 17: - return (reader.readDateTimeList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 18: - return (reader.readDateTimeOrNull(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 19: - return (reader.readStringOrNull(offset)) as P; + return (reader.readStringList(offset)) as P; case 20: - return (reader.readDoubleList(offset)) as P; + return (reader.readDateTimeList(offset)) as P; case 21: - return (reader.readDoubleList(offset)) as P; + return (reader.readDateTimeOrNull(offset)) as P; case 22: - return (reader.readLongList(offset)) as P; + return (reader.readStringOrNull(offset)) as P; case 23: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 24: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 25: + return (reader.readLongList(offset)) as P; + case 26: + return (reader.readLongList(offset)) as P; + case 27: + return (reader.readLongList(offset)) as P; + case 28: + return (reader.readDoubleList(offset)) as P; + case 29: return (reader.readDoubleList(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); @@ -7514,6 +8382,352 @@ extension WeatherCardQueryFilter }); } + QueryBuilder + apparentTemperatureMaxIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'apparentTemperatureMax', + )); + }); + } + + QueryBuilder + apparentTemperatureMaxIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'apparentTemperatureMax', + )); + }); + } + + QueryBuilder + apparentTemperatureMaxElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'apparentTemperatureMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMaxElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'apparentTemperatureMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMaxElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'apparentTemperatureMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMaxElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'apparentTemperatureMax', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMaxLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMax', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMaxIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMax', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMaxIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMax', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMaxLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMax', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + apparentTemperatureMaxLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMax', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMaxLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMax', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + + QueryBuilder + apparentTemperatureMinIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'apparentTemperatureMin', + )); + }); + } + + QueryBuilder + apparentTemperatureMinIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'apparentTemperatureMin', + )); + }); + } + + QueryBuilder + apparentTemperatureMinElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'apparentTemperatureMin', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMinElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'apparentTemperatureMin', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMinElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'apparentTemperatureMin', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMinElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'apparentTemperatureMin', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + apparentTemperatureMinLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMin', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMinIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMin', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMinIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMin', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMinLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMin', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + apparentTemperatureMinLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMin', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + apparentTemperatureMinLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'apparentTemperatureMin', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + QueryBuilder cityIsNull() { return QueryBuilder.apply(this, (query) { return query.addFilterCondition(const FilterCondition.isNull( @@ -8533,6 +9747,179 @@ extension WeatherCardQueryFilter }); } + QueryBuilder + precipitationSumIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'precipitationSum', + )); + }); + } + + QueryBuilder + precipitationSumIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'precipitationSum', + )); + }); + } + + QueryBuilder + precipitationSumElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'precipitationSum', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + precipitationSumElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'precipitationSum', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + precipitationSumElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'precipitationSum', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + precipitationSumElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'precipitationSum', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + precipitationSumLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationSum', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + precipitationSumIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationSum', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + precipitationSumIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationSum', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + precipitationSumLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationSum', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + precipitationSumLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationSum', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + precipitationSumLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationSum', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + QueryBuilder rainIsNull() { return QueryBuilder.apply(this, (query) { return query.addFilterCondition(const FilterCondition.isNull( @@ -11682,6 +13069,179 @@ extension WeatherCardQueryFilter ); }); } + + QueryBuilder + windspeed10MMaxIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'windspeed10MMax', + )); + }); + } + + QueryBuilder + windspeed10MMaxIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'windspeed10MMax', + )); + }); + } + + QueryBuilder + windspeed10MMaxElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'windspeed10MMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windspeed10MMaxElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'windspeed10MMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windspeed10MMaxElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'windspeed10MMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windspeed10MMaxElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'windspeed10MMax', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windspeed10MMaxLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windspeed10MMax', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + windspeed10MMaxIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windspeed10MMax', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + windspeed10MMaxIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windspeed10MMax', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + windspeed10MMaxLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windspeed10MMax', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + windspeed10MMaxLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windspeed10MMax', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + windspeed10MMaxLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windspeed10MMax', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } } extension WeatherCardQueryObject @@ -11861,6 +13421,20 @@ extension WeatherCardQueryWhereDistinct }); } + QueryBuilder + distinctByApparentTemperatureMax() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'apparentTemperatureMax'); + }); + } + + QueryBuilder + distinctByApparentTemperatureMin() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'apparentTemperatureMin'); + }); + } + QueryBuilder distinctByCity( {bool caseSensitive = true}) { return QueryBuilder.apply(this, (query) { @@ -11906,6 +13480,13 @@ extension WeatherCardQueryWhereDistinct }); } + QueryBuilder + distinctByPrecipitationSum() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'precipitationSum'); + }); + } + QueryBuilder distinctByRain() { return QueryBuilder.apply(this, (query) { return query.addDistinctBy(r'rain'); @@ -12020,6 +13601,13 @@ extension WeatherCardQueryWhereDistinct return query.addDistinctBy(r'windspeed10M'); }); } + + QueryBuilder + distinctByWindspeed10MMax() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'windspeed10MMax'); + }); + } } extension WeatherCardQueryProperty @@ -12037,6 +13625,20 @@ extension WeatherCardQueryProperty }); } + QueryBuilder?, QQueryOperations> + apparentTemperatureMaxProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'apparentTemperatureMax'); + }); + } + + QueryBuilder?, QQueryOperations> + apparentTemperatureMinProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'apparentTemperatureMin'); + }); + } + QueryBuilder cityProperty() { return QueryBuilder.apply(this, (query) { return query.addPropertyName(r'city'); @@ -12081,6 +13683,13 @@ extension WeatherCardQueryProperty }); } + QueryBuilder?, QQueryOperations> + precipitationSumProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'precipitationSum'); + }); + } + QueryBuilder?, QQueryOperations> rainProperty() { return QueryBuilder.apply(this, (query) { return query.addPropertyName(r'rain'); @@ -12199,4 +13808,11 @@ extension WeatherCardQueryProperty return query.addPropertyName(r'windspeed10M'); }); } + + QueryBuilder?, QQueryOperations> + windspeed10MMaxProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'windspeed10MMax'); + }); + } } diff --git a/lib/app/modules/about.dart b/lib/app/modules/about.dart index 9aea1d2..18b66ed 100644 --- a/lib/app/modules/about.dart +++ b/lib/app/modules/about.dart @@ -32,7 +32,7 @@ class _AboutPageState extends State { return Scaffold( appBar: AppBar( automaticallyImplyLeading: false, - backgroundColor: Colors.transparent, + backgroundColor: context.theme.scaffoldBackgroundColor, surfaceTintColor: Colors.transparent, elevation: 0, centerTitle: true, diff --git a/lib/app/modules/weather.dart b/lib/app/modules/weather.dart index ecf6243..05a59d7 100644 --- a/lib/app/modules/weather.dart +++ b/lib/app/modules/weather.dart @@ -6,6 +6,7 @@ import 'package:rain/app/widgets/shimmer.dart'; import 'package:rain/app/widgets/status_im_fa.dart'; import 'package:rain/app/widgets/sunset_sunrise.dart'; import 'package:rain/app/widgets/weather_daily.dart'; +import 'package:rain/app/widgets/weather_more.dart'; import 'package:rain/app/widgets/weather_now.dart'; import 'package:rain/app/widgets/weather_hourly.dart'; import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; @@ -329,7 +330,7 @@ class _WeatherPageState extends State { Obx( () => locationController.isLoading.isFalse ? Container( - height: 405, + height: 450, margin: const EdgeInsets.only(bottom: 15), padding: const EdgeInsets.symmetric( horizontal: 15, @@ -339,23 +340,51 @@ class _WeatherPageState extends State { color: context.theme.colorScheme.primaryContainer, borderRadius: const BorderRadius.all(Radius.circular(20))), - child: ListView.builder( - physics: const BouncingScrollPhysics(), - itemCount: - locationController.mainWeather.timeDaily!.length, - itemBuilder: (ctx, i) => WeatherDaily( - date: locationController.mainWeather.timeDaily![i], - weather: locationController - .mainWeather.weathercodeDaily![i], - minDegree: locationController - .mainWeather.temperature2MMin![i], - maxDegree: locationController - .mainWeather.temperature2MMax![i], - ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: ListView.builder( + physics: const NeverScrollableScrollPhysics(), + itemCount: 7, + itemBuilder: (ctx, i) => WeatherDaily( + date: locationController + .mainWeather.timeDaily![i], + weather: locationController + .mainWeather.weathercodeDaily![i], + minDegree: locationController + .mainWeather.temperature2MMin![i], + maxDegree: locationController + .mainWeather.temperature2MMax![i], + ), + ), + ), + const Divider(), + GestureDetector( + onTap: () => Get.to( + () => WeatherMore( + mainWeatherCache: + locationController.mainWeather, + ), + transition: Transition.downToUp, + ), + child: Padding( + padding: + const EdgeInsets.symmetric(vertical: 10), + child: Text( + 'weatherMore'.tr, + style: context.theme.textTheme.titleLarge + ?.copyWith( + fontSize: 16, + ), + ), + ), + ), + ], ), ) : const MyShimmer( - hight: 405, + hight: 450, edgeInsetsMargin: EdgeInsets.only(bottom: 15), ), ), diff --git a/lib/app/modules/weather_card.dart b/lib/app/modules/weather_card.dart index df2a2bd..d0cfd8d 100644 --- a/lib/app/modules/weather_card.dart +++ b/lib/app/modules/weather_card.dart @@ -7,12 +7,16 @@ import 'package:rain/app/widgets/desc.dart'; import 'package:rain/app/widgets/status_im_fa.dart'; import 'package:rain/app/widgets/sunset_sunrise.dart'; import 'package:rain/app/widgets/weather_daily.dart'; +import 'package:rain/app/widgets/weather_more.dart'; import 'package:rain/app/widgets/weather_now.dart'; import 'package:rain/app/widgets/weather_hourly.dart'; import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; class WeatherCardPage extends StatefulWidget { - const WeatherCardPage({super.key, required this.weatherCard}); + const WeatherCardPage({ + super.key, + required this.weatherCard, + }); final WeatherCard weatherCard; @override @@ -304,7 +308,7 @@ class _WeatherCardPageState extends State { ), ), Container( - height: 405, + height: 450, margin: const EdgeInsets.only(bottom: 15), padding: const EdgeInsets.symmetric( horizontal: 15, @@ -314,15 +318,39 @@ class _WeatherCardPageState extends State { color: context.theme.colorScheme.primaryContainer, borderRadius: const BorderRadius.all(Radius.circular(20))), - child: ListView.builder( - physics: const BouncingScrollPhysics(), - itemCount: widget.weatherCard.timeDaily!.length, - itemBuilder: (ctx, i) => WeatherDaily( - date: widget.weatherCard.timeDaily![i], - weather: widget.weatherCard.weathercodeDaily![i], - minDegree: widget.weatherCard.temperature2MMin![i], - maxDegree: widget.weatherCard.temperature2MMax![i], - ), + child: Column( + children: [ + Expanded( + child: ListView.builder( + physics: const NeverScrollableScrollPhysics(), + itemCount: 7, + itemBuilder: (ctx, i) => WeatherDaily( + date: widget.weatherCard.timeDaily![i], + weather: widget.weatherCard.weathercodeDaily![i], + minDegree: widget.weatherCard.temperature2MMin![i], + maxDegree: widget.weatherCard.temperature2MMax![i], + ), + ), + ), + const Divider(), + GestureDetector( + onTap: () => Get.to( + () => WeatherMore( + weatherCard: widget.weatherCard, + ), + transition: Transition.downToUp, + ), + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 10), + child: Text( + 'weatherMore'.tr, + style: context.theme.textTheme.titleLarge?.copyWith( + fontSize: 16, + ), + ), + ), + ), + ], ), ), ], diff --git a/lib/app/widgets/weather_more.dart b/lib/app/widgets/weather_more.dart new file mode 100644 index 0000000..63bb0dd --- /dev/null +++ b/lib/app/widgets/weather_more.dart @@ -0,0 +1,54 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:iconsax/iconsax.dart'; +import 'package:rain/app/data/weather.dart'; + +class WeatherMore extends StatefulWidget { + const WeatherMore({ + super.key, + this.mainWeatherCache, + this.weatherCard, + }); + final MainWeatherCache? mainWeatherCache; + final WeatherCard? weatherCard; + + @override + State createState() => _WeatherMoreState(); +} + +class _WeatherMoreState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + automaticallyImplyLeading: false, + backgroundColor: context.theme.scaffoldBackgroundColor, + surfaceTintColor: Colors.transparent, + elevation: 0, + centerTitle: true, + leading: IconButton( + onPressed: () { + Get.back(); + }, + icon: const Icon( + Iconsax.arrow_left_1, + size: 20, + ), + splashColor: Colors.transparent, + highlightColor: Colors.transparent, + ), + title: Text( + 'weatherMore'.tr, + style: context.theme.textTheme.titleLarge, + ), + ), + body: ListView.builder( + itemCount: widget.mainWeatherCache?.timeDaily!.length ?? + widget.weatherCard?.timeDaily!.length, + itemBuilder: (context, index) { + return Container(); + }, + ), + ); + } +} diff --git a/lib/translation/translation.dart b/lib/translation/translation.dart index 8d29f58..f0a4971 100644 --- a/lib/translation/translation.dart +++ b/lib/translation/translation.dart @@ -90,6 +90,7 @@ class Translation extends Translations { 'uvHigh': 'Высокий', 'uvVeryHigh': 'Очень высокий', 'uvExtreme': 'Экстремальный', + 'weatherMore': 'Прогноз погоды на 16 дней', }, 'en_US': { 'start': 'Get Started', @@ -178,6 +179,7 @@ class Translation extends Translations { 'uvHigh': 'High', 'uvVeryHigh': 'Very high', 'uvExtreme': 'Extreme', + 'weatherMore': '16-day weather forecast', }, 'fr_FR': { 'start': 'Démarrer', @@ -267,6 +269,7 @@ class Translation extends Translations { 'uvHigh': 'Élevé', 'uvVeryHigh': 'Très élevé', 'uvExtreme': 'Extrême', + 'weatherMore': 'Prévisions météo pour 16 jours', }, 'it_IT': { 'start': 'Clicca per iniziare', @@ -356,6 +359,7 @@ class Translation extends Translations { 'uvHigh': 'Alto', 'uvVeryHigh': 'Molto alto', 'uvExtreme': 'Estremo', + 'weatherMore': 'Previsioni del tempo per 16 giorni', }, 'de_DE': { 'start': 'Los gehts', @@ -445,6 +449,7 @@ class Translation extends Translations { 'uvHigh': 'Hoch', 'uvVeryHigh': 'Sehr hoch', 'uvExtreme': 'Extrem', + 'weatherMore': '16-Tage-Wettervorhersage', }, 'tr_TR': { 'start': 'Başlat', @@ -533,6 +538,7 @@ class Translation extends Translations { 'uvHigh': 'Yüksek', 'uvVeryHigh': 'Çok yüksek', 'uvExtreme': 'Aşırı', + 'weatherMore': '16 günlük hava tahmini', }, 'pt_BR': { 'start': 'Iniciar', @@ -621,6 +627,7 @@ class Translation extends Translations { 'uvHigh': 'Alto', 'uvVeryHigh': 'Muito alto', 'uvExtreme': 'Extremo', + 'weatherMore': 'Previsão do tempo para 16 dias', }, 'es_ES': { 'start': 'Empezar', @@ -710,6 +717,7 @@ class Translation extends Translations { 'uvHigh': 'Alto', 'uvVeryHigh': 'Muy alto', 'uvExtreme': 'Extremo', + 'weatherMore': 'Pronóstico del tiempo para 16 días', }, }; } From 84635c87ab3e0c5b379a10b672eacf9169ed48e3 Mon Sep 17 00:00:00 2001 From: Tomas <91416789+t0mzSK@users.noreply.github.com> Date: Sun, 23 Apr 2023 15:21:00 +0200 Subject: [PATCH 002/246] Add Slovak translation Hello, I really like this app, I have to say that this is probably the best looking and functioning weather app when we talk about FOSS weather apps. You did really nice job! I would be excited if I would have a weather radar included in this app. Good luck for future development! --- lib/translation/translation.dart | 89 ++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/lib/translation/translation.dart b/lib/translation/translation.dart index f0a4971..33c80b3 100644 --- a/lib/translation/translation.dart +++ b/lib/translation/translation.dart @@ -719,5 +719,94 @@ class Translation extends Translations { 'uvExtreme': 'Extremo', 'weatherMore': 'Pronóstico del tiempo para 16 días', }, + 'sk_SK': { + 'start': 'Začať', + 'description': + 'Aplikácia, ktorá poskytuje predpoveď počasia v reálnom čase a aj hodinové, denné a týždenné predpovede pre akékoľvek miesto.', + 'name': 'Počasie', + 'search': 'Hľadať...', + 'loading': 'Načítava sa...', + 'searchCity': 'Nájdite svoje miesto', + 'humidity': 'Vlhkosť', + 'wind': 'Vietor', + 'visibility': 'Viditeľnosť', + 'feels': 'Pocitová teplota', + 'evaporation': 'Evapotranspirácia', + 'precipitation': 'Zrážky', + 'direction': 'Smer', + 'pressure': 'Tlak', + 'rain': 'Dážď', + 'clear_sky': 'Jasno', + 'cloudy': 'Oblačno', + 'overcast': 'Zamračené', + 'fog': 'Hmla', + 'drizzle': 'Mrholenie', + 'drizzling_rain': 'Mrznúce mrholenie', + 'freezing_rain': 'Mrazivý dážď', + 'heavy_rains': 'Prehánky', + 'snow': 'Sneh', + 'thunderstorm': 'Búrka', + 'kph': 'km/h', + 'mph': 'mph', + 'mi': 'mi', + 'km': 'km', + 'inch': 'inch', + 'mm': 'mm', + 'hPa': 'hPa', + 'settings': 'Set.', + 'no_inter': 'Žiadny internet', + 'on_inter': 'Pripojte sa na internet a získajte meteorologické údaje.', + 'location': 'Poloha', + 'no_location': + 'Ak chcete získať údaje o počasí pre aktuálnu polohu, povoľte službu určovania polohy.', + 'about': 'O nás', + 'aboutDesc': + 'Toto je open source projekt.\nAk sa vám naša práca páčila, vložte 🌟 a ❤ na repozitáre.', + 'author': 'Vytvorené z ❤ od', + 'theme': 'Tmavý režim', + 'low': 'Nízky', + 'high': 'Vysoký', + 'normal': 'Normálny', + 'lat': 'Zemepisná šírka', + 'lon': 'Zemepisná dĺžka', + 'notFound': 'Nič nebolo nájdené', + 'enter_name': 'Zadajte názov', + 'create': 'Vytvoriť', + 'city': 'Miesto', + 'district': 'Okres', + 'noWeatherCard': 'Pridať mesto', + 'deletedCardWeather': 'Vymazať mesto', + 'deletedCardWeatherQuery': + 'Naozaj chcete odstrániť mesto?', + 'delete': 'Odstrániť', + 'cancel': 'Zrušiť', + 'time': 'Čas v meste', + 'validateName': 'Prosím zadajte názov', + 'measurements': 'Jednotky merania', + 'degrees': 'Stupňe', + 'celsius': 'Celzius', + 'fahrenheit': 'Fahrenheit', + 'imperial': 'Imperiálne', + 'metric': 'Metrické', + 'validateValue': 'Zadajte hodnotu', + 'validateNumber': 'Vložte platné číslo', + 'validate90': 'Hodnota musí byť medzi -90 a 90', + 'validate180': 'Hodnota musí byť medzi -180 a 180', + 'notifications': 'Notifikácie', + 'sunrise': 'Východ slnka', + 'sunset': 'Západ slnka', + 'timeformat': 'Formát času', + '12': '12-hodinový', + '24': '24-hodinový', + 'cloudcover': 'Oblačnosť', + 'uvIndex': 'UV-index', + 'materialColor': 'Použiť farbu systému (Android 12+)', + 'uvLow': 'Nízky', + 'uvAverage': 'Mierny', + 'uvHigh': 'Vysoký', + 'uvVeryHigh': 'Veľmi vysoký', + 'uvExtreme': 'Extrémny', + 'weatherMore': 'Predpoveď počasia na 16 dní', + }, }; } From 02a311eeca026753238d25ff95aac09c675e2618 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sun, 23 Apr 2023 18:04:59 +0300 Subject: [PATCH 003/246] added sk_SK, dynamic_icon --- README.md | 4 ++-- android/app/src/main/AndroidManifest.xml | 8 ++++---- .../app/src/main/res/drawable-hdpi/splash.png | Bin 28530 -> 29804 bytes .../src/main/res/drawable-v21/background.png | Bin 70 -> 69 bytes .../src/main/res/drawable-xxhdpi/splash.png | Bin 81410 -> 88952 bytes .../app/src/main/res/drawable/background.png | Bin 70 -> 69 bytes .../res/mipmap-anydpi-v26/ic_launcher.xml | 7 ++++--- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2709 -> 6378 bytes .../mipmap-hdpi/ic_launcher_background.png | Bin 0 -> 857 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 8183 bytes .../mipmap-hdpi/ic_launcher_monochrome.png | Bin 0 -> 8183 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1685 -> 3629 bytes .../mipmap-mdpi/ic_launcher_background.png | Bin 0 -> 463 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 4891 bytes .../mipmap-mdpi/ic_launcher_monochrome.png | Bin 0 -> 4891 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3869 -> 9838 bytes .../mipmap-xhdpi/ic_launcher_background.png | Bin 0 -> 1321 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 13106 bytes .../mipmap-xhdpi/ic_launcher_monochrome.png | Bin 0 -> 13106 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 6571 -> 17325 bytes .../mipmap-xxhdpi/ic_launcher_background.png | Bin 0 -> 2953 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 23111 bytes .../mipmap-xxhdpi/ic_launcher_monochrome.png | Bin 0 -> 23111 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 9640 -> 26436 bytes .../mipmap-xxxhdpi/ic_launcher_background.png | Bin 0 -> 4236 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 36730 bytes .../mipmap-xxxhdpi/ic_launcher_monochrome.png | Bin 0 -> 36730 bytes android/app/src/main/res/values/styles.xml | 1 + assets/icons/logo.png | Bin 125334 -> 113182 bytes .../LaunchBackground.imageset/background.png | Bin 70 -> 69 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 81410 -> 88952 bytes lib/app/api/daily.dart | 2 +- lib/main.dart | 1 + pubspec.lock | 8 ++++---- pubspec.yaml | 8 ++++---- web/index.html | 2 +- web/splash/img/dark-3x.png | Bin 81410 -> 88952 bytes web/splash/img/light-3x.png | Bin 81410 -> 88952 bytes 38 files changed, 22 insertions(+), 19 deletions(-) create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png diff --git a/README.md b/README.md index ebb8f73..952a834 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ An application for viewing the weather in your city - Просмотр погоды по часам - Просмотр погоды на неделю - Просмотр подробных данных о погоде -- Локализация (ru/en/it/de/fr/tr/pt/es) +- Локализация (ru/en/it/de/fr/tr/pt/es/sk) - Кэширование данных - Выбор города самостоятельно - Добавление карточек других городов @@ -33,7 +33,7 @@ The following options are provided: - View weather by hour - View the weather for the week - View detailed weather data -- Localization (ru/en/it/de/fr/tr/pt/es) +- Localization (ru/en/it/de/fr/tr/pt/es/sk) - Data caching - Choose the city yourself - Adding cards of other cities diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 5cb3c5f..2b6ea53 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -5,7 +5,7 @@ - @@ -19,7 +19,7 @@ android:screenOrientation="portrait" android:windowSoftInputMode="adjustResize"> @@ -29,6 +29,6 @@ + android:value="2"/> - + \ No newline at end of file diff --git a/android/app/src/main/res/drawable-hdpi/splash.png b/android/app/src/main/res/drawable-hdpi/splash.png index 54a42dcc1a11767d9fca540361db3c9c528830e7..cdb9410fa25f8a4274f20828a463e7e860f61f0d 100644 GIT binary patch literal 29804 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

GYd#&=9`;}6?6uO3r{%aXp91})-o#6j8hm! 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 Cf(*C- delta 50 zcmZ>Dn;@yn#=yWJFM6aCNb!2QIEGX(CQl3q`pM70q{f&uy_7WvD8bgTe~DWM4f D9bF75 diff --git a/android/app/src/main/res/drawable-xxhdpi/splash.png b/android/app/src/main/res/drawable-xxhdpi/splash.png index 627ce7883d422e578182e4b0cd0135a76d898c7f..1a9734e72715dc6bff905ec20b3b611f716257e9 100644 GIT binary patch literal 88952 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 Cf(*C- delta 50 zcmZ>Dn;@yn#=yWJFM6aCNb!2QIEGX(CQl3q`pM70q{f&uy_7WvD8bgTe~DWM4f D9bF75 diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index 5f349f7..345888d 100644 --- a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,5 +1,6 @@ - - - + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index 9ac1bf526335ed8d63bf7f808e88f20589af2e50..e593429e63e65b8de6b0e846cfbc8a66de1969a2 100644 GIT binary patch literal 6378 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 literal 2709 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 aWA;c5*DfV4Y1$v$1eh9I8C4tJiu)Jr_#|fl diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..f5935760a093e9036d9c0704962b8453057f7d4b GIT binary patch literal 857 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz4M-mPBqj}{7>k44ofy`glX=O&z%1@Z+;cx%| literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..52549a38af4a89529495c2a78ea356575054b752 GIT binary patch literal 8183 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..52549a38af4a89529495c2a78ea356575054b752 GIT binary patch literal 8183 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index fa9db57dab8a3c9cb8fe117cbda2813ad728a16e..3823047c6ee5afbcb9d6a1798fa741a558b12345 100644 GIT binary patch literal 3629 zcmV+|4$|?7P)Px?=Sf6CRA@uhS!rw?*LD8xEN|XQilQjfq%DP#Y>Bo+N?s&Oq9jVL0XGR!2Zgga zHjKn|nm9#)G|q+=MbQFoS~q`cCxy|tOBw`e(b^80HZ9!5iepQ5t<4K1E)q>q3q?^R z-#TxWdv9^>n|Yk~`1nZM`O^U(-olwX=R4;+-#PaT!~gSx{hI8jb?RS@mX-kOUmwVX z4+0=GSlhB?OKWRq=RHiy-GZ@glFNf+C8Si=lFjt4Y1%KCkZ(yQkJz)b|NYK8@8kf8 z2&nfA=KTPmYcv4H-oe590R3T4@_Rj>gL@u4&f$Ar#qbb7@NOD9G);$L7|;y^2E)&| z6#sDI)mNVb;77o$7|44CK!%%p2L~VIn)VIX^*6eX1K0DEu@#$_cqd5eFMJ0~!$2$+ zL(DYJN{#*b$yZ+a0RZp4L}aA^=sf-Qfq~ntnDvC?dI!t44PS`GhDQvnkHDhu1V;k8 zuEDb6uwt>7gj@c`o5zkF4)TZM(|t8snOI{e46vnM@#Q#sB)m z(O16)zzuSvA&6!G0^{#~+AfzrXFE=Xnw7tmQKv~xEJrVjL@Jed_SBIhk2M3a6aZ!X z?!iNUX}ivsoiZ6;n}F4%UBbha^P5mC;D0od^`NX+3@z!@Qzwodd3-4ljR4SZu|0!> zU$!0Z$+F|rdOT`yoq_aK(-=4xHEOd^50+M`r4l?Iw~$UIzIy7l*PaSM)FgHz07n0= zU3ck5>}BG7)bmS6VZqaS6+i>;N4&lyg&NQdw6NR-jmKU22Mqb{wJj>R$)<7)lb)yg3&wCqf`n+p#h!h>&dE2%i*CD zZ+rv*d9|ucQ2_MWymQ}y&)bgkUEinTRIxT}2Nu3Zk~u;tL)YPRUIk#r46JU`k!jK4 z35h~MVtT3sUDJ__Tgc@LRXMIVcu^HM4P=suFTH*2*!LsFPBmcRLEcaA7}$5xE|z-8 zX!>V$;X2PVts+E1RNz@LhU?bE;rjwJa}Kumb>Xf(tyt6PLs~wHT;f^*I6G$J^syYK zM~ZM=zi$0XVXKkoNTk#0)cEMBliL9l0dP7m1faZs``*2uE|=ZER~0rQl~F|rKc^CL za3SHiF8Xgt$;BCWa{B}P9FPF7=;i3c|Uo_-hI#Ii^bnqpv{8bhXJ6nuj0-s zi{H9Ag-1Sh9q!zkhLx~@*bOLghLW5`o@e0-9oM*xIl+( z&qE3cAp{s>YRxc*s-0{^cUn{F7tg$T;^P2HlnWsMy}P^n`nIkcCOvA*8t^{+E$pEw zSxp^y{CC&kqj$F>VQG-YTDV#q1#b=oUO-m5C@IeiWVwMHH&OHxnDrU*j*iQtdA$3t zqbQ8bfO8Howh)a5YD6|rCtJLlT{k;>=`tx&Xiuzv&z{fNrSh{?5(X}>bn?pGRbYnB zu)aHiTW?O`p^vv?!;Kb%7Kg8AP~v42g^iqWQIO>&W^RO1_1>XQAZjn8`Vq zI(!~iUKmpMpa>9T7Nbs+?h+`fCycS88(m?r=RfYqD&wqL1Arz!w}l12b^tXa*c9P!tkHp&=&$hb1uMxR_%G<~^U5#e}Or0CM4!~>(pncP}{;B$tYPu$B4K(1>`{H=$9t$n4 zI((+V7hG*-JtK`W0gyW8{Yv4=Lr0ctn1h9R7m7*+-$dCrVS56;r=jc$2>NV$D2z;@ zbo>fX461pRy^A+yivVog);CpEn+6du$a)GF;~3atVCN==lm(^X972JBrNgp-@tlcy z4ip7Lk!vVO4F!*(Bs7$Trnv9&h1N(j$~n=M036(I|e-Ck6M>b%<+K!Y9V!cP@7 z3hNjbfT2}d2})wq1XgD>^mH*CAK{AIN`UDcU&2Z4?WQTsmu4c70(} z)WCY$b6gr5t>yr!P}`=yzMlvocQ5SL7bh{TY#D%%46ZK`HyM0RZLr?%wt`3X>|36PqU z2RGfa?Vml!1ItB$WFuxWBy@?QC*kpml$bFSKKCI=mZZcT2i9Ta?I{%IUF`huY9u;} z_@D0wBo8D~PYD!waF-p#!P51^6QjeQ05C`8C%PZVZ0No90m0bQl_)IkLTmes zh3+&Y+xFXU#+B)7n7S~ltc*OHZe9rooGI~A0QwWHJcl@_PxwGUmuM^L%&Fgcp?GMa}^yZu^;*7y%-uD$Ll{C zg;(ZCb}*Fl5}X>Oz)-_9u(op*Jm16grTK~u(MBfR1vbH982ZG8k>LRVGejSCY2f1YZo#|n&fxqnuBzg7(@i&EWO%Zw z>E!ivtA#_qy$u&GP2-K9j;p1J*J?}I3Vao58)V0?HQqc4yh zD?3cXI666UhPY4Or$kc3sGkd|n$XqLv)_y-U!Yc5)%hhNKnsMb6*FU?QH;6=c z2EVWkKm69uQJ$muY~|46Kps$(+tkLSlm z{wPA7nq*ljhD4>L0@2(1Z7y*Cl1bJ;2AhFdDF6a(==#5$A3jab2(ATVltm@F83_qQ z3P5|$&71$k2YZlqV2dMAsTaQvqpNvB#sfb%KQ{8mf$`NzT)hL9%c3w6?dvvedK9|x zO-j;Wa8O;V5v`iF!%Ibhq*7xV826r-Ja_Jyz<3(w)^64#3oHjfsUJ2`iR+3oV6T<(^G{x#nxZlKd@zY_+S#oHfKoqt=t09@>Y2KG zHhxk!jYkF8jifq_skJ=Ysen;&)0mtT9)ITI_}L!^hEto+^x0Ur`bq(Wl1tGbg~|YE z?OwnBBf1s8kD61}j|M$dIGn17KokilaB3jM@GI_=pT9UU@lycVpueFaRT&Dc;CL?p zsyP;nVyJf_rAj9fiT1X&YxnE1*bc_Dn}o!jjqa^6{I8T^l)LVUx#?+o0z_4n3KI=# zskaHA)~~?y$|>&$Kop32h8)m~08w=4MRcQRMGx{S(SkfoFEW_E(=?d^*t{890@4Qo z5T#)_q9mgU6us)#CQ7KOVZ`9DZ(p&;>rebYo+ znpTpo0W}T6qlWF|g=HFIYk6DomT;$$POJzY2!|aRQ20{my3bFFQ$D{bc4p&~5Kuj} z)GyY5v5|H%!UMv+8LMFY%%i@fIhmcCk=iZ02bVZeB53FoSj8gGpwz5nR^2yL_Dzu! zk0EcHB91sxq<_U57PTNK;AswGTqu@Ky4>&qL4q zI)dN>oM$Wkoa8k2E_$h=_3lIK2Ap10G<^roHlgd@PB@9O6qFq>O?WwhmIdgzhQ=j7 ztDkd@?_hRae$f@|?m@rYZ(aTd(T!*HFivkK000EyNq4NF#5Uerq$Q=&V(5!6mLm92UyJyl;DcIGUkZX0MD#&W(3kq)L)8|=BG?v5 ztv9T-#a2z4CL}SNX0y99yE~UNGiUr~f~h|A!QDv*VL$e;XAbO~|2zNpU(QOo{E(0T zF{HQ+Xnz(h0&$~7Aa1k>#Elk#xX~gIH(CU44nO=LkyyJeuto$#QH1AtWc*sZ{ojb3 zfTGA?%n9eREWvTyaIUH93dfT}8}=v4&K`u5=w?A_T;N1s8TGKdPB!!pxQ=Q7GJ$Fe7&?2vqh zHelQHJMitRXII~|8Z)<=fNe99i;uhVY3v_3cVKf)bC>1< zOfuYZMOZ9>I!Vc39z==wgKDKP^!3Gb$PXJ?}O|Kv5LjGpIn}Hn=U4 zbP{lh6oVKV&VpwitO-O+gzHkkl5|{3sjicN?RfBsq_9rG`msA z!Ieo5`b-JQj0}eq5DZ&Rfsvj~GTfl_&mhAlAO@ECAa#LBTC!4_hB9KV}1$u5z`uKB^hy7cAvy7Rm zRF(NkPq(x{9-@HGw#zVehD|it>jv`q z4(!_1ful#Kard?~CN9_ESR@%;#>h?)SI#jEjHEDq*+6G^3dL!&q3jb0fqx(y^>0k! z*(ZAO!kbs!{l{z_o>+bOefwsq(h*>W!E^$)PjtUSLhdw z8{ag60LwbZDgDNCt~-ahS$_%)QvUA8H{$g1DO5@pKKW>pmTqiUT?mHQ?Do;L)2U<< zhPl!r?|W(oP8|CNGv|x=;=?Jhpde6TD_oGm3(nwhFRuPR4@r{3deV&kBO}27&foNP z@`vwGSgeGP!})&vdhuFlcp#m&brSZ!^dR0iI1h(4Z+w7A2w0XCetwG*1@7m|6wEG^ zl#C}|c?2&X_yF9cZYk`K7(O2Vk~$|p65|6zdL#R1FgjFn-+K2`aL-@OGA>;mrrr;V zV04$|HTze>r&BMSE`{?bZeBM->wlrR(IOBxS_I-oi$L6H5r`Wt0&(LnajI1cu diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..2c16d92da2ae0f0597ad1b2f55b45cb4b349172f GIT binary patch literal 463 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz1|<8_!p{OJ#^NA%Cx&(BWL^TWrh=0E2!w0U$-kS>1m8KSay|NcgEG#2@&g?M171KK7KpQ z)h2nMAUfip0kcFNx3)wY!{OXS*26prJ9O71%wXi%-YUvt-0*PQhNeU|gF9kj24@)B gZXX)egfk#&nHNu9$(c~>2#g^HPgg&ebxsLQ08g%`K>z>% literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..f9963e0060b78f69f5af24e761f6b0efc5e626a8 GIT binary patch literal 4891 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 O1yFmgrBns8iuez_JXQ?= literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..f9963e0060b78f69f5af24e761f6b0efc5e626a8 GIT binary patch literal 4891 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 O1yFmgrBns8iuez_JXQ?= literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png index a505d41b4f9387fde569c0f25c0f719a9e50fff0..a171e055c44f542d0e134ba2165c6e2f77826bc9 100644 GIT binary patch literal 9838 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 literal 3869 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 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..b4c6bfbd8012f8490a35cf6ced33a4241ee9abda GIT binary patch literal 1321 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

  • l#{caYmfO|A7q8oW2-oNS^i<4P^kt( zo8|Lxo!E-Y?jd?pzHcmW0Fgi8UWZm1?oL(7>U&||HGwfkLQ>OUKkhHo~Jfp?sl+eJG0{!4Z=Esj!#soZli&wCa`C5mhb~l}|&THCsJ=1-KI#W%l^% z>h_zFi;o*u7*V#U(pBy0XlKv^p=o4cwY68^$n*?vdLbRcxq}j&L`;G_LlEfL_sG?W zk{s`b>tw$+lf38V6q#fNO#ZAHWr2;0=51UpjTY&(0fU^ZikL`EMX$o$@;30Jv2T6B zPjXg@L8YzkoQ*}U>lcg2^wu^4<+`U|G*~M>wVws1T`BLqEyU+_p^QJ}ovDx(fVV3% zvon}fG`$iG`uDAN%dre4BOzQ$e2`=U`bpQlZH!*6wd{~MKP^vuiJW~Lmo>w732_%4 z#{!--W&T>949rj@P8#@l_*vEO-@>=C(k|W8>wwq zkrEZzAkeEfb3s=f?M1g=9u{Hw;+!w^rn9ze)kclJ&D+`Rc9J*$$+qG9ZlDwYnu}y} z)y5oH!wYn+Ov_Hd4+p&wW2+vd8Pn`m@VT`4{btSGK;9PXX}=3*L+^-4>EiOTzmuD< z+xnZH^{2~;7r(V<2$%)T&fBejI(I#HK#QWl^RHP+7Dx4&fy6uDO7Ag?dFbJu?XWDh zPvX41-@h)sx&mf4tq_h1JxWSVH(KY@<5r7}Cw|B-^lh&RhgmJ3IC;7-P7B;ri$4V) znx2QEynj2$>TTSsJBX4?I3cu&)iE1YJ10vIfTj&#^7OzR39V^9@}Dj^ zT{94x&3}%&ucE6ZM1(<~oj1$oY3$cJB3f53JCI=)1V2kh6_L1A$l_1%vadwto*DJi z3H6h`TIngzZj?rpN=V+>E?>lNb(PwSZmLX7RJinMeUa56i{+fStfq6l z4Z(%#Kwf>DKIaVy6`@cQo{kSaAtTphNM>Yn92~+eooJy5i2J76rLm*P8FUt>Q+?3R z5y%lY1bGk%6S+hkJ+?@xD zfM%ULwoyzn<^|waDp;PPfpu;CSYL8VRl6Xu zy^};tpk8%D&v&xT$C9U~M}L!r`&Tpakb%zSADG-&{N0iTm+adSz81cWrA&(m`YNm) z7(y8KT{C_QmkHWpJxqcE$cO2_Xe42ma+(92jfc8!_88 l{6fM1P4<5}!-n`I+MCN%e2Jxo`FaEcCM6~>S}APc|39ZY@#+8o literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..eda50a99d316bcbd171f2be638ac1cb19f848dc5 GIT binary patch literal 13106 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
  • l#{caYmfO|A7q8oW2-oNS^i<4P^kt( zo8|Lxo!E-Y?jd?pzHcmW0Fgi8UWZm1?oL(7>U&||HGwfkLQ>OUKkhHo~Jfp?sl+eJG0{!4Z=Esj!#soZli&wCa`C5mhb~l}|&THCsJ=1-KI#W%l^% z>h_zFi;o*u7*V#U(pBy0XlKv^p=o4cwY68^$n*?vdLbRcxq}j&L`;G_LlEfL_sG?W zk{s`b>tw$+lf38V6q#fNO#ZAHWr2;0=51UpjTY&(0fU^ZikL`EMX$o$@;30Jv2T6B zPjXg@L8YzkoQ*}U>lcg2^wu^4<+`U|G*~M>wVws1T`BLqEyU+_p^QJ}ovDx(fVV3% zvon}fG`$iG`uDAN%dre4BOzQ$e2`=U`bpQlZH!*6wd{~MKP^vuiJW~Lmo>w732_%4 z#{!--W&T>949rj@P8#@l_*vEO-@>=C(k|W8>wwq zkrEZzAkeEfb3s=f?M1g=9u{Hw;+!w^rn9ze)kclJ&D+`Rc9J*$$+qG9ZlDwYnu}y} z)y5oH!wYn+Ov_Hd4+p&wW2+vd8Pn`m@VT`4{btSGK;9PXX}=3*L+^-4>EiOTzmuD< z+xnZH^{2~;7r(V<2$%)T&fBejI(I#HK#QWl^RHP+7Dx4&fy6uDO7Ag?dFbJu?XWDh zPvX41-@h)sx&mf4tq_h1JxWSVH(KY@<5r7}Cw|B-^lh&RhgmJ3IC;7-P7B;ri$4V) znx2QEynj2$>TTSsJBX4?I3cu&)iE1YJ10vIfTj&#^7OzR39V^9@}Dj^ zT{94x&3}%&ucE6ZM1(<~oj1$oY3$cJB3f53JCI=)1V2kh6_L1A$l_1%vadwto*DJi z3H6h`TIngzZj?rpN=V+>E?>lNb(PwSZmLX7RJinMeUa56i{+fStfq6l z4Z(%#Kwf>DKIaVy6`@cQo{kSaAtTphNM>Yn92~+eooJy5i2J76rLm*P8FUt>Q+?3R z5y%lY1bGk%6S+hkJ+?@xD zfM%ULwoyzn<^|waDp;PPfpu;CSYL8VRl6Xu zy^};tpk8%D&v&xT$C9U~M}L!r`&Tpakb%zSADG-&{N0iTm+adSz81cWrA&(m`YNm) z7(y8KT{C_QmkHWpJxqcE$cO2_Xe42ma+(92jfc8!_88 l{6fM1P4<5}!-n`I+MCN%e2Jxo`FaEcCM6~>S}APc|39ZY@#+8o literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d8736db47375c38a47e19bf1874845a96e3fbb76..c97e543f87624747cdb1d8c308d7e701feb28a39 100644 GIT binary patch literal 17325 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 Y0545M2iS5K=l}o!07*qoM6N<$f;ez91ONa4 literal 6571 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 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..950fbdfdc137053e23c532a82d7f7b14ac4dce6f GIT binary patch literal 2953 zcmeAS@N?(olHy`uVBq!ia0y~yU~~at4mO}j{44ikK#H+A$lZxy-8q?;3=G`Po-U3d z6>)EG8ulFu5MXuuEp|lg`+g;s2@y^!K8H*D8=1!ICY(S1wMORtvv3IP;QrC_!WF3SfVxY50|O(Iog!HLhvozA&Fzjr zk@%T=8G-tKoO;6xQWl;DR`#FePuq)HkU)ONJ)kxa7c7s;Rp9us+{?kpso_9dgF@b& zo6}f0SQs67Jlr@0ZU_h*>9xK+iJ?(Jp@Z=x2P2a-Q`3&Z^k^Xk0TvcR1xZDR1ZM{U z^LIJkOe{?e3T!IMEF3u;9FLC8&Gl?>0P1c?X<=yOWpuo=W3w)&00&c(#DpFJg$;@d z9n$67R2i8Z9R!#s2{N&mv9J_AKDSN9L4kuKY1A>JAv2n0Msw3>IWt-Uk5&hx73F9X fVx%>$DwqWbP0l+XkKE-GMV literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..054f92323e7a283b8d6c2ac57134b779cd2f4c9e GIT binary patch literal 23111 zcmeEu<9B7jvvzD76Wg|JPV9+o+qP}n&cv8Fnb@}N+%v!T-nH&O@P4}=&faVF>guk& zcRx>6S5=<~MR^H$7#tWNARu@tNl|4WAYjpdKPU)5i~gC!2;c_nq%0u}R6G6S6bOhA zNJ>;l#a-`07t%Xran*0@Irc(ug#-)=nnV!mR|xhKiW1r|U9DD4tJb-hwzj&Jc8jaI z)up30Ix;Xaa6ml=mMIDd5mE5P!B$q+_U&h`({xn0AUzSLqf?&uBdFty*T{GG>+xzF z*n=1p5=bx*Q6Ew~6r`{}5+N8Aa4ZlqaSt@0Q4k6WEF9@n^*GfwgTGvtmT zR6Kmb7UF+K9Si**d1H~{|L)mHG|%&I#9*LRr2m#71OgkYKmn3u4F+g3018YzbklCe zO$L}4%pVBZ5QuON2{0TKB0%xM{oK=JfNn@YAfn;G{-PoPjR<*>2!-L|yh?wffCLKy zK_L-A0HMGWfk6e_2>L@Y@m^)fO93VXCKL?D`oBs3?{)p(>iYkMlT3twvOuQ2T>~zsa*$vdj?D)Pkh_<+fD`f)RZsRO)On;85>(}^}WmreF3PG{L0JucFUmP(frmvc-$@bInHH`p;I#{rr1i%Gn z9Fp%805!-(0BZcnFOK-fB@4&^E_uW){zL_ENfHr2Cu7BV(SM9{_HV8?`1vnrfVO}B zJqI(TMWG-v7LUnZ&F$^2gT8O;!<1ki^iex9s<@fB)?{vszTF1qq>K60Q5=BB?t6|K879`MteYmva6v9UpQ#TX4HSTlB(V*|vG!_Ndp*Qaki}9kfcqz31io z>-cXjE;sClBx8B3=k7iAwClA_m*qoR_Fr!Y`pq)o1YIvhWOBmcMdS*h7|Rw}gUMuz<8@SwzF>PMCvylCx}k4`FrZB~)^0WyYtcpTN9& z1dsE42I1Yv$XvYMV+1}sl&ioVp`k!o2-vk`Li()*# zq;ry%p!q=_K)?u$w1~!_;INqt6@|kPmh0a4qReoc7Vw_8z3Sa8rC;lEKe#F;V}R?y z`9y+O0_mH`@W@C=2KRuLFUFv_8dZ7yEBkfOA1IT=-o|VoZ`y%lFZdsner9{vtErv0 zk|$YQuC*-6F%e85cmDf+SDP*AIf!^EYjq-N=?M)EsptE9BrNMKZOzxSb1*jR;zHKh z*u+N0^`a;F(%kOd-0r+M?b$dB3$OXjlkkTo^fxahCMClNY1?!?YU;{Uu2&w%+Jc2WN$g`C#2;@yLm1p3+XP~{6 z0U*>bZ15_xLf~KHXN}Ott8j^{VEDQqSu!E>KYck}$G|<_EAvmxH>q{gd=)j%%PCjY z_Q)Tg0|fsWJTNkxzs69-ak5euOFfTWMdD9b?3OCZI+oICqGGRt;Fy$=xGI~Fo%BHv z+%Ieb<=p<%L_}x#QaI+FU^qbL-2MoCP|68FXz@b8EdJKO!;p&FH9}v&xIeajdJy~h z9mbMa!P*XwW?m4oDn*F`AR?w`bA?N|WqSX03Xy0{$q8V*8@M)vp)QC>Xo_^hDE*4L)=<{jr^j6{ z>|gpWmp16rE@)jB-r}ygYmr)P?@C&B85eEce${vDHk_2R? zKa7p3vIig}*mw2;^QfVVeC6J$`?!qXAFta%>44iXh5vIlkTWyO=z{hqgiG(IU|v%{1EEpCpt5LMVelDBG(jhd6F1e0<&1emdS=0}UhN<8qbFqp;PDU;OR&Jxyq3tBB4}u80_^f>?P4BKPcHS&>it z%A_pnqH&B;U<)F47ZeK?Ry-DtBsix8G33BZBB_!#Bbn;I4XVhBt@6Qhb1Ruhm?8L+ z&c1TCz)s(>yZa?;{B_jr$F_F|=iEIVB!DMVozgBydp*9WeBN_GJM?LF=dLe`ZDPOl$KLs8hS5x=(e>%@n^71d!4q3Btk2dRfXuCbxqY;8=q)yJ*iGm@^cP+u z?LDlreDkyRd=G7ZUZq@ne_!m!VgD_YiA!G54u!LP9^W{Xn(e4TAm4<|JcFD~s3g7m z)5ie)i7FY+{7nI4Kv|I?r+91u=~62yDSZZ)zZ_KBDLCxmjQOG@y)dVD0vhufp-j|< zRESf}vY3uqxViyx@ta$bOg>%KCKarKiFl+}MmXhY2(nWOiOhBp45o=^+`5`z(M-IM zl1-ZM+?3O02*N83UsqXk*W+g8>~o6zy)>jJmB{G_@lbq6Wgq+78?N7yx=#<2+w0!U zZxL@zP0fT#I9T?Y3Ey{bmY9shR94cO%Pk(v;?~P7Ylx&HgIXO@-iQXmG>F@8P8!D+ zbkbxDmw0D9??mk4aFy`z3-He9p`VDAXU3IG(qWOY@+b@^vN#Vxg+z}9($UW0+akmZ zLd)@JN|hpE5hEqMQbw^DM+QQ|fLpSV=br^46HDPzN{^f*6-`ONm-c^gBh|tXFFKuc z9kcN-$0)KvF5!b_buP>%lE7C8Du(QY=!`XnB&?V-NZjkMRSP06I0#1}L11E9#Li*o ztSipyGg~(Jo+ojUXv0w8>3Dn*t9qT(W9%K+fBf>jOf;#3h-8X^g$Fn-BKx_4EiznI zp1qiLJ>-Yqwq5+lg=COPOYIwEztdS=mX=q8DGR``fio*W(~Gx85d>Lp7 zD|H|(aj4NuEYF-BXD zP4d=GK4~3#?2SEN5Nt^aV_b@F5F-t&8wrG-4U`!t6FTV;h*FrvrP#g?W)p&i5!69J znRA+7pq(L=ENQ71-bx<$*9?@Qa#fgGv@t5;0>lOX;>w4OhQKFb z=)P?T=Ra`tQzK86rx;fn{fv0<>W4(Uk+!B@N^E$Ok=Rc?ZHRXqXo!`Z8Y}s48?^L^ z>~qEdPG-kWR<|vjOCpci?zG(;nb33?h~643lalH;BEM{zBm9miZ9oe(*0O#&)bwob%3?#`2!(8HQ;>ccg%Rk6T4l z+WSew1YTF%S}9LsV^a^43A%p;2!6*(Ai^*Sw%R@)>*h$lbqVPqojqGu0UqkgMcqjk z?hh7|@tMRfvYv-6?Qffh&Bqy8>m;_y(SkC3yjiNPJrK>~02<0ihrEcF`ybMx#G;t6 zB=A<4_2SN$>|8222{+yO<&u#bQImXsC|e57hseX@j>(-O;=@)LGer$mOeABoAkcq< zl;07c4u$1KO`>B62gRb|pAAYXl~26*v|>1or>|m(`_hsl_l4oxAEl%U0bq~+dr;M8 z(otxJWsP2LlK+(9ao`K__iIsA;lnBFDn+Io(*}~4u83_{%vS+SM^bA%yh1wDxf$sD zgYW5MFKaC~>j0zGRiC=w>)+itc-g0b;0r>c#hh=|ojqif+>98J+6B4GKAc5(RyrK# z8%A70>7Wy_C01J!R#K59G*}dk{@PTKc@)nWO@B70?EK(xc_dOkXce)bgC$MHUHU-k z?FbesPu|w}Q4}2GaCT9A*TD!lJaTum)YU*W#bh9+3-Q1GaemB=2ME}@lHs&bA;Wyc zM0fdiDIR&Z@hF^5c=qOhINZ=^*IibHuFQIU?~i9V=(L)l{3zldRwsSwBapIILs*-0 zn2btYEjIbjw$Sq!yb1~$jz2#%Yja763e~X&O*xSp8F7h#9jTC|6b*l|w=0k{HCm&Sa^aUx z@lCZONfPqoin=}%21uL%a9i`mc$6q zpQ7qOGH54QB9zv_)RkkD*U+QTiA2)TvRtNmI)k3!Pa-O59phD!Sgt{$LsE$*#Rj1f z_Ko$?=n3$HhA=`Pd4ysji)@C79pfK1lSJI|=~}c4*5tZ4!R3xFxT7Qujf@1&&Eftw zrQ9rW%?QeLf>)zm>_@)!76Tn=yxx05&|OP)+x8V{0@q90U)rkL>J1Ku<7M=Znm7di zHjhD3c1@XlPRiG{%L)o~9y_V>2J;*F6Q+z(dO)N^M_Naf#Br>wk_j?Soz}of9W?2( zmx90q{-sdp*d?4w6`{kA4QC-bF&Ixmxv3OCNTZ(^%W+gqiMNeA~J@mv;N1=lK*e{rl9^XPAOO|87Qcq}?IMrlElioJQRYH}%FQCc)HzFsg8n&c(eB8mt1Mg)B_KVwZW zxP>HcU*t62BROFnjWNTpzmBsX(uH^8K-QM|D~Crcy)AteAp{=T3agQo58uqZd^)rT z={d-iFBz%hKFBNw%T;89M%@EGj)g*rR5S?#F`}V|u=k1aMXp_4rKQ6reidnsYDh8x z(hK(p;&_~ z3dYZJs>!3Uk}hIesU20D9W|Ns<_J=Y1AJTrv|5ZP6g^rXNL95-(cNJ4XaQ8*vAcM# zKMgZ6%=+yV-r|EZ9h2>}HXxc20qjfD_T#!>nb3>QwnhiJrqM#ixkU6KjqwE8 zaXdP3xFj;Dq7@0ylgux%+|Atzt=k%n^kxyahQ%@1NzU#Qse2gDg~7K0fY{{8UEb@k z=%*PX1u*3nORI{Yz( zO1zD6i&Wf6siY(VL~rpu)LoW=2*cn_tl%-nbg>qk)U3(yxT^MOVA;xpM1so6ZfcJ0vOMJCcsN!3b{jB{BFOcFzdI{k z>*_~-%^qr4JHf?do}O%!D7m{yt$8ln4%%rfwUw=*&RhTh8E9 zP-#ji>_eH$SiN-LYRF4_GQ&4WuJg{foXZDUBlYn=BbN>mpJllYDh#5A4K$90y`t@( zM9PzF*^forVi{I!(7b90r#lc@*?1c38Rccfjexrhy5Lf>z>SD$A?kx!oAinq3Y*7| zlVL3uNk&6A<`;vEgI+Xu?l!PxN8CCx+YycE1v_&~6~5i$OB#2KtwBs$CclW40t5r< zc=>wNA*trMM~s<;gqxY4D+r#uXq@UpRIlbU++Jm&A#D!_{hHq30p0`{^pSh~WQ~Rx zF8M2PB2nc~HzR1}s1DA--A-EpZ6RY-xmr+gSn)9R}vLL=H#`1s%%$z8UwsmM@9 zd^O`{Y(;Il$3PBKHkJn$0|`5_Q$j}a7)Y%{Rd*-+8tN^t8e6VMj1?QMfAHaWd+~`n z8Kae{WXv@<7n?*s&Al|w`Zx z`HZ%DUFp1GfWK?XC=!w0A*^}j;cZymxP!B&;pj@iZ9{6;-ahe96dtVtBQMx=Mlyx_ zfp}ntS@!9Ro!*bY%JTavA&41!b3uM&}zsc!t8X*EX z70x&R&;59>beErK{#3c@VF_rnN^%(Z#>p5CDB`iQnF}3L2ocfXB2MTTJj&62B)@i_ z-N$n^rGfH@10>o4LgzEey@QA&!SFJHl{gVk*0e zGy7X_DKETCsFYoTG|92Cu~WyMF25}5YCU%QYIRkxkIz2Bb>=HY!_&aj?{Ro79KW{} zvXY%AR*)}~-ikE{mm)2z5e0_{Eo#4R$FOq)1_tC9u`*TDk$EX2xftV^J=0?Hod19| zlHst18|!I4AUlmhGK}|um`C$d2Hv#8$5)Nea?jaU8=N4(&VHpLX)>}d(TOgiUAhX3 zn^>}uXprb(C>U4X*khBRg+U@)RBEyoCTgzX*HzLfL-ufs ziomV7AX1XE))Cuwvy=SH%Lp!KK20hCIm!z)y1wpgGSu()nmV`1-(&>`q-f*<_Rw=l ztSrxVnv-3>yMMWk-}HZy5RLBv_o;9l{Wz-G(6sPNjT^mB#s+7`B`W><3zHjKP+Vvf zhFPuC6kL67wIHC@Q4GiH$Gy7%Q4fZ{4=HRn`-0l9pQ5MHB?nB9FiV05TW0i1j$XuV1dfZ?MsP8GHo4!l z*(|c2Xx~J)zm8yIRcD*Wa(FqZDxbH>MDa6&vN z5`Y@9NwJ}WJ4CR0?9HI32aP`5DWeJb)TY)b4`-}U4J6?zH+6(CWA?@B*>LIh;5@FF zC?x1tp@oeDHuknpHd9mz<_i}_d$ws~<4ua~g&%Un=4ne5IF(j-#TRi?Bg3fMc6E;u z$)5$Cq|lAXH8l`1O4#1G_OU}mLcncd9f$N`%B5xG39?^iQa=hG-``nxd*)T9zyMos zQ%B?gYon2iEm+&^oR6<;i%r>tRL^*{X81zxXf%?0t^q)gxv`ow@q6RI| z)b-}V4B;6ebBt!ND9PA{BwZpo@2m_L`GuCW*_7!5gHID=isZ;JD2MZ;X&^4DLk!Fj z$PtOCly&iRfwdW6W9Q_=+WXnnBm|hi9?Jsce9TN)bwMvo6`BxD3L&W1b`t^()`-Z4 zgbX&}F+{>}39wn*BsO;s5jnlT&r3z?Ej4l#jE1rM<{_LHAroUux=CkEt}c+iSv&=q z-qTipz|Ut`qvoPdM#OZ8wP#L|vZDI`fUmS<4W8Hdge(=0%(p77WmeUKl!^tDYYm*Z zM#|l@11R6*KR+yyyRs5$!XVT+n8lO}Uj{G>0n1v|ZxlfWRFoc8)jn*vm{dlVB|8!Z^HJxOocbUnCf)xQeg%I{dfIv7DvX&gk>wm34?G z?XU5qSrb%$G6-k%zc-B8q3cK;X2B^LrpoYY@$6Y7Kz);>Lga@Qq31!6qW9kpe-u)P zh1lCbdX-1VgqA-EGYqjRUOyfKc{^aD!7P|tAe*>=D}5x=i$_%rqZJPvLUiQVRSfik z7sm{l8kH3Tn#z|1j9nuo|K$jf>)vCgP7b5|3ttq!%q`q=6eL z7bipz!wfMWLs!n>2$qc@AdyK3*M5?oR38FgGme3Dhd4+3jYopDc**-8%@Z=u!)V}& zIC%Bxp7R!TEO7Ky`c-yK$fH-&<`2NDzeAQGpQ947gEZ58jwMU=wDmq*mRirkC z7YZo?%OTw`4^OFnrI0j`z23J;c40}MQZl;}gcHLNk*50#DJ@KYHV>bLjLV`w`l_Q%Z<~I+n36Cn`fSPFg*QJl zDr%2f44O_QZ?(-Bb}TU^M81#&?5LH^)9utTeH8TT9zZHeAwkSr=^aTs4ig>*Er6>^Ig!iv{_BD8Pyy`^o zw^54z-~u%erRXp8OUgFzHYC}&$?yvH$CiEvqnnm-?75un3uW=ka=&AjrIDmYb; z6qj1P@!G?f6VY`1Wz*LOoTT^uY4@(%!x62KjFWzIIM2q@x6^?lMFqXJEZayj}gMRqSOKlAGwcy(J-Pcf*|4#!q-#6 zQkxHE5ktzW3=*>i#rR2^?4iKKhF`)Hgfz1PmT@1988ys5RgLqUvDdJ%7fBj}O)nXa z6&68Z1pb4yn4MH3V145d1v((_ug`B__gR*O(*u7^A)g!bX*{@ks6XC z4Wf~R;fRXR%$(NcL+0Q&^>+Jpf0KUOuc9W1q2@>*qrq{85w`nfM(b9I;1#%9Pj}O! z6W#Sz8$LIhB8f5t-Y4$*$n1k$$yH^RD%1vYqBlSGH0gwf9kqhBVGSNAxL+zzZG**CI*v}JVoCtymC1jdIP>nL~Fq*#n?l>ZsAzts2;lWZZE z3#4p9&*sM*4AFFmd8*WCh4ZU0C%?g1@U+p6ouSrhbJAsTKQxEM1fnoBQSlpz7Mx_<2T$PU?|As4OfnXQH$(pakmV~#R^~Mk)2!c z1@D>vfctTpz|CV+(r3Xm@yG8J&TB43?tO$-_=b+#wCkm_j*KBfiykoGwm^rxRRc`% zFE2EC^kf{5E+AwBx<*a+7kD>YtYJcT2dFPQotd)J*`;~dy=uH&#ZCEHS)DbO@xX?& zWn!!>)EWq;(pZB44bD?K@QvpoJksbsu?upAO%b(Yj)B1#(LF>f zCrd2KcFF3h7nuP@LxWewFW4Y;#L*pFc+y_DtsF9NmypFG`I=2lpA>x_tz4)EkKdpy zN0XnUV?;r=@x~qdO*8y7z6&pU1RY){Gr8WJuO(^;^m?|n8VGll66%WkiUXYT?5RI0l99CClI?3u z@(CIELku|NRF2BV4N=@}M0b^Yyz^PZbd4+q$Z)xr1B@db_21Ejfy1>yKKBvdJe}5m zWv1?Jiggo$-BY#$s)tV&nMVPP`5ad_RJsIdVM-Py4Z&l6aDpOvFK&$m>DC z8+&mC8*k!*xko>#i1RhroAN9(KI?HcX}kY!V*f$8v}0D|YKD>khA@SVIFW@_y!yo^ z`LIr0Yu?3jm%_Dr3&(+fVDli$^n*GZ$)meSNvEIkVjSRIcAM(m>8sS3Zkgu#j!Jto z6^iY#Ip&HT;s}lBiw6{rOn-Z!rdX9&a5E`01>RT=5pdl|? zErScF=837lc44CApGAMzn_v;c#2STz#_Qn{d3WTt#d7?qB5uFoRs*x)L|C{?`T zB-e6Hea0H+=LEK?mqpn18e}5&{i^S|0iwFkkKeWek!>qN62hWa1K9>@Be3WE04wFz zOqrPR*_SCM`=dzwR>a!ebpv(^wv*We@zRVr6=pxhptC!qGQ81zR`Q75HH-`L zbrH2e%)hwtH71Rvud;VD{&aWnOpu5N8n+6`z8V$G4-oxQX+7f8>AP;<<|dJn5BIL49mDxG54=~?5RZfn>A_Y4r%uilbwhgPavWk9f;GK{bQ8(d zElx_JBo@H+$EfeBHY|n0wZ58IJe(4bnz~#vT#uohJzL9X?>zhTf4zY`*6w%I8Q$!- zyV+cPa=bHgG+41t{K^($5%9sYZsbit<#;3-_a!g}x4{Lrk;0Sses6SZd4j(LA5TFS z+MNf-dALHGlA(?0DqJWkn}1Y=t!S$6L456|uv4&A^)Mcyivv?iHS<|RyX{XCR&fuZ zZX!Y-CnJa!>`Cj&Po|MD|ANP=+nA}kM`Hk0^Z6^`!2JXln-W+b#@ zM}p}c=_`Q~~3aQvF`GpDjFZ!0;(F9_A^ z8sv#lzg9Z8)u1H?j4@!yDPe?-aT*k(n3(3P0&2^5T6UgQ!~2S6;pioTD_F$#0vA5El^;kCzXwu;imA-Wz=v9swO_N-riwBv-l zL_|l5CX^4 zMG7r~vO4PZizz^3FfS&^U^O`;=!wu8xR##ysVPT zw6txwmpS6L%uYK7dMq-Cm;g9(8T&eubcHSE9B8ntgIqxmS_h-bD7*8L$ml=N%r?oX z+jr{PcRz5>U^RC2w>6#R&g**oGX`dHPz~66wxS-W#xV0M~_jO;VVW$npIkV*tD+Ot1=Ju;5|n zTM$!dlU5d-g{httGck|~!dnlL1c_n7@2G&5k`|jOU}HA`9MN6OhQtSnj1R7)|C?1d z!6-3v4l~0miV3_<_1u`UEhUhkp1ufL;~+8|_kdlTp6PCDYD0T!!Ti=vJiHJaJ<-!z zly_l)N3froop>R%qOb5wE^NhBQBQrMSS2|lqfYceovHf|?^8S~PuhT(B1eC*|I z2;zrthEuOp$9|S@s*9}&Q`pfJ}uD(9$(CEhBvZkN?^jqE%oDE zvUu#=x3_yW-L@p`LCP8_xTGZrmk`2IE=2Aw9BG{z6@JJgBtJ+te9culcF6{!UnI87 zGOHf)wF=aax9p2gDBb1Ko2L8{Ziq2Ykbos^^5DS9#C96Og)JwiY=d#3vjT5eafvu- zU1@16QG#DYWZkjCq;N3 z9>1-HB;xxK60ucz;El!ow@a^X4H3lk>S1uydQ5=_=o8|i_72+Q$~EMf8BB+Nz|s;a zh(Dsx%%=B|-uqjt)dRiP6TVVKmN!k&*jOP$BQ5`8M8mLyV4*>X%5y4%LCj*pk%acj z&Nr{!yH^q1B82H#*I5&WMq3Z_bfI~1K;!n*cvle$uNF!f)8d-AkG60ZKO=bNbb>^K z?N9<<6K@G)_M$5%r|&Niiid2xpUr@pg3;q8$V8ZpvKzvSAhh19QB+yOSR7ze4MM2l z5$^d5?V6S&711q1b0lxI^ZY9G{HpPzu(uu~e}28m+UqI;$^CM`F-kO?$njDWv`dG> z!aR%2Z7LeL>H?JUz8+WY5kf|eX%P*Nj(03`ku>^rh}x2-Wz=IKzkGh6g%7`Wu!OQ` z4Gx7Q4%JxTFR`MwIP@eAFtSojzmodIUnnIe(H2Hx{5@2OzPX}RgAp@LECh9qgdMmn z0zcuEZ;f_D3ZX4M6(r)HT^=PkAHTy~R`%JsXg5vDC&YV15}*dg{*GBQabM?9JrNFA z*SkfH7{-d4@fSQf&TzO1GVR8q2Qn&uxObNpa7SJ6CLq?_VTq~+CJ*T;s_Me0urCBA zAbD`-1@5x1m@Qs|){GxMqAhLew!E)M5Z#T39I^wF{rxR*)8jbxY&`F?9m9Cjn`=YB zIi_YN&HBt<&cP)j-Ej#78pMK;7eJP}Tr~I-UX}HYrTOBd{*?1EXLISJwtq%}`3u%P)J7qE3d2z(ujtdr0@_0eeK7I2vDp=H3Mh<=;prjAPe z9KwlI5mb{^tNyd7O;Qvl6PAtSaLwzdovyi>c_H%wvI~woD@+ufG9Y3zZ+ye_NAuTI zC1YBKM{Wajx;}W%$mLy5GoMmJ)lQ7*P3Ig2eIO9>-l8Ah!MRt$}WhIjYC@cqZu=x-tGxN{`ck}x%Ar*FkBVeO_%Ib&0AZ_5AEccUWedYcciQe?|CN4#-yyI*#LgbaNC2u*Z&%pW??qc>GBY{3{#*F`9kv%Dn~W zsDOP9EPqP2ynz=ctST*dDNqK=L1M8KE?Wvj=p}SaM z?MSqZUukh|OkF$zsYPbN(xZY=K3*phjZaGyUi69;dCTPJ@yKk1t^FY^cxusgYfmtK z6ot63$T}Dtl1;hoDQEE2WgYt($bBe#>We{&}!R8 zahoW9oBn!wrYtnvc))eN`d^+`4dW7-j&zw(NbU20!ZbaLA?-d-w@qf_!N7{6Thk`Q zk4lgfHe2^&SewnxM+)*b|NS}S0W3iLj`8=0IR2*djBe4>7R!2KtWww`KF<$UQXY;4!ucY-e={#Z= z>o)Dqr>L*`&Xw=V_w+R!wFq=PrGJ4b7DXMHS^hZ(T&f~SBoM| zCUc8kZ(G+{i)vVG*RM7#s(ce<9&(1<5~GA{rN>vJ+DG*;rC-pd|J(xetXlw zwwZu{{lQo?e}#|l+v)rDmM7Ky{K}0O;3!t`6+catL@`_GC10fejBcB!U66x~d-Lhv z_cBsfi$^`Biv4H(I_`Sb_MZhxFxAW)(9P;^`ae^;;ca`n@R&Vilr zhR5c6Dhq-@a6i1{_;%QO?shX>3qMhFeBjW>n?!hst}yzU-zXp7&-puXoS@5|2=rPxijgF2! zi6%mR&(lcXINv`UUjJ(Av0U4|7+ks7FVyGQU_D5Ew>|$Xux{+nvdiS(PNos*;fm!UW-IL@o}x@3x9m=y}AE<8fGQG&!Hisdh8HuC>Ux zC0kmGc-Ot*CGyfg4*^{80FCC{8!(Nf!^RrDauM0flbvce!>r$iCzXL7_ zf;zt^l8!=iarx_>L#+r-czzexVzqW#Z9Cpf>>DvWP4-b)^mgsvPL^HVLBE`R8l{-L zC;ui3leWas3ghqf{0C*e3kHkBbGsj&>s1Pf?!BrsG%uF&1AhG6InNVm&(A$8q;8vR zrl)lTS57rLekhhzKW?&~v+ev^Kl%ou`2Ln^k2i0B>yKAPkQ5cvnhIENz~21L!_>L+ zVs9ty^tzxbT*Swc2b56r%n_FGz+{>=4uxM)p(Qmt9?QQe~wz+1Ha zKKq;w?d!PhC}?e_4R>3yENGkt7YmzIY#)C}O0>fvA8M{{UWsT*9Djq4iR0390edp- z+8M(5*^3H!=fu!_wNs5>Gdd+xD~XL_#igSLCc*BWZ_rZYW8r)1VN$IX7QA=#K&*hG_ zySI`5`i}rX2PM&#$MMUI-=jfYN8=|_Hnr+b%J7!}gSNv?Lln_!f!WN1x?fHLOJ^LO zd>Ve>1)tKE{#PyGo$?$3qi0`pSsrc!b*n1X51N?(zI76VbC~;~K)c^|UK82;*1@&! z%$D+AOUL@b$-bu-O}D_?Dw>-s6NeRVRLv;D6s;)@nap@*A(%aB+K?T>+{v9#V36vuLP0wN3U+%{w~cR&kHB-vxIu z*QUyG@1=~ZpIN3g-;?sTU*?MW%`*E6p>X+qm`~;Kx2I8it*Oy=f6hfr6Vt18CY|45 z(5#h4dVCfoHg!pG3nx#j@y|lhk&4itkX)I(xly*mt>W^(xx}1}e-5j;fqbM}Q?g;4 z<5;i80Ts&bhfH=4k(wDj?+7QPE)|bswV-9RkWbfk8ZAHAs9W^k!K{uwyBsY)Q(-++Gy&crCsc3*;!&*$i`| z_!C(fsf3~ydCAtLH`2JD`>=gj$aL9hD1MFZ4u<)_^D;c*<$24Ti=OY>wh2_U!qhTs zIa^N*=SpGESNM1poe3{OT%wH0>yeqd!@7E#yE8>7M*9rxkH_jCJ7X|)~ z&3r`oDIOcmu+lKNRm~xlMFIvQ3NTrM`Q|In$XFR{%nk=9zj3W9F9qDcr^qm4B1k`= z0u%vB6(%&>QgJQ#k@=94*F{XYGH7Fd98`V) z*@VvM>faQ*ZSx%6M-$~7)9boE+}5cde^4Pwn$F<9&kiEWe`#y!v#fNpzbp$lw)Wz; znZogUsckMmkPp}fdY%X19&IM@zMZ3otfzjveV+&}jWCf=DCFYcV&^ow4&Qxef69(N z#4;68kmC33Zsq1U-An)adVNLwQh>iQ3KZz^Sm^zwtrMwwb5@*zPFRyB4DWsqp~UY z0=sMermxR8edg)hw&nWbUjCa2qBv4g&mGZMDveLQ9Jl9DGT>1q*YiAH?-9BljuI2+ z=$G|-++NBRHO?|3+LQa#Ab|He(J^tIWBj&J{q9NrEIqO5c7eINx|-_*X>4jL9)oSl z_uz;4e0}H>o~{eT>;`P|*7O5)A6q%5xvcKg!su%1Z+rwZT~FxrY?@O@k@>*e(FK6>(rvU=OKK=K<01wWdo-I`%cN3AjH{{@V9Oe;ZT=1jck7H-Zt35XBn*tvm;@_Sn zV5vSTAg}9}d`@k7fNa&FybsT#B<_Zb!*Okn7ut{7iw+|)u2hhowjXYoj)AgPU`Ok$bfr}Pc^9` zib|iya(s11(*qle;`7c!@bUohU7e)fgCD%IJ);zKK6@EfW^Pv-5MM73%TY}N>z?~2 zI+%QGvPe)TVix3HB{n)BAa2`!g9(_v4!YavV}=@yA5h(oy&wHq%h!`!UXjhstmg{} zOz*y)NnCQSJioSm!MDa;1#UH6cL^Ap7rNJ3xMy-X>Yc~aRqT0S`!4GsvX;SZ-T0DK zC+aVLj$X=qdF=!VwsK#Gkvu}f@+$7%2xk0+@8WN0f1>BdSXcBri<;VO(9cr(L$cpS zhS((R5(3hJtD~R0qR7q@|5b)YIT;g zAAY+Jz58wosGr}xJ}v>j8_7@RpP_KF5#AK!1HAS5D_wW)IiImPJPNA%=7XrUr@bGq zn2oikTTD1-=TUvTHQ-^(;PP#-7x;Mm`o%u22YK&yPzQZR#|Uo|@fLG&XAQ2D{JR0! zhrjv6x)glNN`DdFXY-Vf-V8xQ^AWGVp8=06ytJv{QE}sq@d9cZF-qhV$s2UwB_Bw86#M9)hNs25DvC@_Rq-2rPB?+=m5Jix_1x{G;Dz z+uvy7H@I@S}Xr>9K&O>Y<9Qw&$KYMZb5R3U^Gt}oY+6uW~aWnRAba#zn6 zzXF73OJveczV`QX73vV8wp3*{qZ%?cK(%#5Ac-7|gvCu| zCg$?n-!{xAZ8iyfcV7vwPiL|}v{Lx7zJJ~hb_Feapt1U4pIlLo@e~d?ebaYco%G+ z^quXk>*JGB*vIxiWrWT znxjRKkf>QmkPsE&Nv`X@p1#k{`u!88SPZV%)HQ(c)|ZTulGZ!n_~4x%+A_H5A$?(ENk3i+P>o9eQ2Q! zy&d*btvv=p+gC4@w2iu`PV>d*V%*BVQ<@KRrCL#!VxYK5= z1j3v^BS8>|R=hNQ=|jtO^-}rrKUe9>^pG6|>1TuS80VZwt=DAOl1QpE+jLms)5q)# z-ALQ4+&rW(n(gk4zuY@;F#9sQ;K28RsRidEiZPlrIQQHTDeaH3pV$c*Y;#soQHHpf z4t%Swr;c-?fY9j_BB7E<9M#9iTJSvo56VgAqYDFnYsYSM)Hf0;9)jlGGau#eO^R~} zR%wFmMJIF|&Z}FBpduBceQ_Imax{{|j4=salk@f9beyoc>@ZGS!SL%h1e-(IiAIbU znZCN4c&9)pS~QJ(whN4T&9=$eUu(*ecn-?7QE#Z7h=8 zNLvM2SuXWS+Y43GS~!Q4$wtXC<_ci?%6f?n4FV+csPRi$sq}X+OP#ma&mF z8}KEL17!Jvp*kqDKbV3|t8<0Xc?V3|SGjZ#|0CA;>-oU84Avx>BpQej58e6rFWJ@6 z$b-IjUG9q3M}v^n`2Z?G=#+ju4Fnapa?z)z^d1hLlobO;$>@_@s-dlJVY`JDLlT*6 z3xJV}(Z{J1OGO4%lDz0jgoUWwW2UE2!R>XryS4z^6eZgfxetZ_-*P?|r#bS@Vwnd& zvL`Pn!>0=xen(y@<44@*@y?)-q#k6V6<`DVlk&w3Q1*J1*3)=OQ*w&`>leWuWa|M_ ztPw=ItSh^U`9TSWP~duLr-)4#!MJd%m6-KcdYY|-uzhcrsj9)8biHS=UJo0&w07he zjLjVDSQ+V9*iM{YNOr_ZE=WpENZqhqKXiD)?jEoh*5Scra(aw)CN<*2&G!`3UA$s` zS9Jtb&WQQq1ZE5+B9}f<=sDMh(O}#Cfd!3mwYr`+`S9Z|+!p{(+%}U4{K1BI{8_vtDRC{LyjX{kphrIi4+L$r1!|wbW z&6xKdP)3_?U$Z9Afqbl#aP5HfW&xg34@kiZaGR7-VPmEd#ZsUc&glER{?H|WpXQ1f z^~9GI6^6p0o26Hg7d_5Dq_`%=ygG{J`{n?7rRA~r1ygq? z{oKO^s;ymRRmC<(Z%7Ffe!t6e3(d4w#JKEzp0R6Z6I&ZbMl`CS<(;#of+_vNc9BvQ z@jb#hAbo{;R!i60p{Q{Al?rv?Vz(ro9s*0;&(Zm^STV$V`uv*2%I@z?d80p+ zYQI!?sI<0S@_*uE0`!DsxwxobU(k;4^M+zlqjgEq^^aO zT8NTl5I<_tD=!$La?Jf!`)LOs2KRV~?gqO??vqB^Tj@O+u#D^}(Nk>?P^j``Fc{}U zre%r@<*bANT`o#vX`h%T19;$iD*|F$ZNRa%L0|X80RCzlN3`7XrGL|`Y&qE-wn*L& zjPYC;%A2IRNU^X82JAHtEG5C+2SED0nGkw9G8KPbWdgTgO)pO=rYr5l*EQEdXVd=O zdL2-97m@{fb#{;lP5tO}*B-E%3qmzMDg+WL>}d>6lYh_(S;27BB1&_hs;X?JZs)Zp zIKcZ#obrG2AHB)j=J!r&SH<-JVfa&hUoyE3af;fT@ZrbhtzdGa9jl21H4JV&h#jFi4GATXMNY<b2l+p7z84jpu?qw3xKDGFtTfz^6^ZJ^5VlT=u4tE9VDRF$}nP5BD%|I~mCC%0mA@ zlJH8WbTheOhiP-8!VxR=YAP(kCcVlyex_qJZ0X;epXY?JR&F)eVaNZ#B`^VYK8 zcdoCEK@7M^sY$8#m8R}dlC~{=q%j|`Zp?}DpSb}M5imPV&A#YCZw(tN(UN{)nuiu3 zWed*4bNYj7qt*wmy^HhV@5QMVlSceZ2im7TUp{6zCOC#Xr;qs#t*AQf?rrfWKjuJu z*WTOBhN}WkeDH4AXr{%^H>4{cwqpZ#d^Cc6BPhZmr-s1*m9~b1mdgI9E4a})Rz3;( z_(pF1(5cIxl*SI$tB$bd#bll}jW+vSQ^lX;x>ZHE<4KUVdf3EUfEbdFTYM2>O-1n` zR}&1!ge|kA$K$dY-6`$Aeir`zJUNZ@FL!DDpU6RIA+@!&1Az&aMzwW!HI`5|a`)oq zysXH-++veH$=C$%u34|6;l4--$qJ3Zz|B}&Lx>W$jBAf7I)M2N^P==^mw2)A?qhP2Ln9tK56#TQ8_ zbim`fnXj32M(A??Qr zKIAY!a_#(sVbKwXh2+(-OzK|*m7wwGyA!X)(x*dM+r48n-|F%Rw=m*ELhIU1g9s6V z64kjHop7#A_JD!MZ*uQ}DGCq^3Z6iH5{V3Qom?)uCbp$dM3HD2L}d0o!=^aHevO(j zC}O5C$$mL;Yui)GPUVVN(=kp{Z^n=J4_YL*$C?fsy+_VqMxbIFo%I9ts$kA`02C^< z#y_SpkkM?p&uw`3$tZl;_jP10gUJ=9&OGY*du4x#Jw&YTRF9pxP4khNZ zBh-{YZ|P!v3?L3-IxD2SN>%QFYN`P%{n@@%*)WIr7mhJ5#4p+y97{+9ur#~xZ7><=EbuNgS zjC9OxCiE-_rw}E8jZ$Sw%E8LxvlH!q@l2BYUz5VXeIJZU_U8}tTj*BnjyK^prGTsl zQowYHGH2z9y|0DRbWnSf*Y894NNeOVrEbSYR^MM4KhG4I+_&9miKT?I5#uxf(n?_1 z1y{11@w1`xVZov}k2Z3Bsj8~a(%dS0l&g2`m}hD3O+cCzn+|Fe8xL0HSe}N{GL$d* zeIT{bW-6j@B{>OKTs_O--0q1~^52^24tVh3XQgvq4|XusTX9mjZk7Mzn=!X zGP*RVARIAdh+_RCF$}<18re2YTgOj{n$KuNw|G-K5l7F^3gaBvog>qgQeVPfeyX5C zf_l$f#mL3%jAiZ4l=fdW3bErWxtSxwQ&UzAv&qj&hO)!VO^HCO_^lZuei0YfVR_VL9^x_Z2Hh?rVW;fS+0 zzs(5-E>G6!-bm`9ikRc1S68Wp_M3llLS!yw*{6YVV3>{Ai-ffC0UmB?QEv2o10f=G zYwlHs(V><`DimTI2xyJxgJFakw(YQ%@iEai?iy<5ooDibAe@odic(bHoxM0yNRC>C z^FJ1bw@B)f+hW zTZ3PJ`=L{9NHj~M@d^WlKXOV^U!3DEpK44%y$_E!%JX2ICYg)pxQxKJH@Lfa4xI|L z;F3f;d8+?O)c0H-7VtgqEX`v^O1N0S(2Ypd{%tF8N{0tB0O=*3&SD*JnaS7aQ=VJjVkT_WBiB@PLKC^OjV&Oh=77<@5g<^WUBM|9i|1U`7$v z0(^W4CKWJ08`AZM{O?3vhDvn!1(Fl4U$ON(emeLf<*25YO*UVmX@{z8*&m`un@$A3 z%&NO+kzk@qIVxuNN$9u7NA$n+Pky*yf;bxdGP&%YfRF~@)XxR~JJP4Ef7AbBYIlKO zAWJ}UGZa`XdQ@HLlzZW&48Fv>{3+1}Ip2kTJ0T!hW1V?Bp`$qAdTXwQkATn-{*;HP kzH=tr+Lr47@$ZNyy}Zqm5p3V!lA-x--?Y3@W$KpnKV)EJqW}N^ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..054f92323e7a283b8d6c2ac57134b779cd2f4c9e GIT binary patch literal 23111 zcmeEu<9B7jvvzD76Wg|JPV9+o+qP}n&cv8Fnb@}N+%v!T-nH&O@P4}=&faVF>guk& zcRx>6S5=<~MR^H$7#tWNARu@tNl|4WAYjpdKPU)5i~gC!2;c_nq%0u}R6G6S6bOhA zNJ>;l#a-`07t%Xran*0@Irc(ug#-)=nnV!mR|xhKiW1r|U9DD4tJb-hwzj&Jc8jaI z)up30Ix;Xaa6ml=mMIDd5mE5P!B$q+_U&h`({xn0AUzSLqf?&uBdFty*T{GG>+xzF z*n=1p5=bx*Q6Ew~6r`{}5+N8Aa4ZlqaSt@0Q4k6WEF9@n^*GfwgTGvtmT zR6Kmb7UF+K9Si**d1H~{|L)mHG|%&I#9*LRr2m#71OgkYKmn3u4F+g3018YzbklCe zO$L}4%pVBZ5QuON2{0TKB0%xM{oK=JfNn@YAfn;G{-PoPjR<*>2!-L|yh?wffCLKy zK_L-A0HMGWfk6e_2>L@Y@m^)fO93VXCKL?D`oBs3?{)p(>iYkMlT3twvOuQ2T>~zsa*$vdj?D)Pkh_<+fD`f)RZsRO)On;85>(}^}WmreF3PG{L0JucFUmP(frmvc-$@bInHH`p;I#{rr1i%Gn z9Fp%805!-(0BZcnFOK-fB@4&^E_uW){zL_ENfHr2Cu7BV(SM9{_HV8?`1vnrfVO}B zJqI(TMWG-v7LUnZ&F$^2gT8O;!<1ki^iex9s<@fB)?{vszTF1qq>K60Q5=BB?t6|K879`MteYmva6v9UpQ#TX4HSTlB(V*|vG!_Ndp*Qaki}9kfcqz31io z>-cXjE;sClBx8B3=k7iAwClA_m*qoR_Fr!Y`pq)o1YIvhWOBmcMdS*h7|Rw}gUMuz<8@SwzF>PMCvylCx}k4`FrZB~)^0WyYtcpTN9& z1dsE42I1Yv$XvYMV+1}sl&ioVp`k!o2-vk`Li()*# zq;ry%p!q=_K)?u$w1~!_;INqt6@|kPmh0a4qReoc7Vw_8z3Sa8rC;lEKe#F;V}R?y z`9y+O0_mH`@W@C=2KRuLFUFv_8dZ7yEBkfOA1IT=-o|VoZ`y%lFZdsner9{vtErv0 zk|$YQuC*-6F%e85cmDf+SDP*AIf!^EYjq-N=?M)EsptE9BrNMKZOzxSb1*jR;zHKh z*u+N0^`a;F(%kOd-0r+M?b$dB3$OXjlkkTo^fxahCMClNY1?!?YU;{Uu2&w%+Jc2WN$g`C#2;@yLm1p3+XP~{6 z0U*>bZ15_xLf~KHXN}Ott8j^{VEDQqSu!E>KYck}$G|<_EAvmxH>q{gd=)j%%PCjY z_Q)Tg0|fsWJTNkxzs69-ak5euOFfTWMdD9b?3OCZI+oICqGGRt;Fy$=xGI~Fo%BHv z+%Ieb<=p<%L_}x#QaI+FU^qbL-2MoCP|68FXz@b8EdJKO!;p&FH9}v&xIeajdJy~h z9mbMa!P*XwW?m4oDn*F`AR?w`bA?N|WqSX03Xy0{$q8V*8@M)vp)QC>Xo_^hDE*4L)=<{jr^j6{ z>|gpWmp16rE@)jB-r}ygYmr)P?@C&B85eEce${vDHk_2R? zKa7p3vIig}*mw2;^QfVVeC6J$`?!qXAFta%>44iXh5vIlkTWyO=z{hqgiG(IU|v%{1EEpCpt5LMVelDBG(jhd6F1e0<&1emdS=0}UhN<8qbFqp;PDU;OR&Jxyq3tBB4}u80_^f>?P4BKPcHS&>it z%A_pnqH&B;U<)F47ZeK?Ry-DtBsix8G33BZBB_!#Bbn;I4XVhBt@6Qhb1Ruhm?8L+ z&c1TCz)s(>yZa?;{B_jr$F_F|=iEIVB!DMVozgBydp*9WeBN_GJM?LF=dLe`ZDPOl$KLs8hS5x=(e>%@n^71d!4q3Btk2dRfXuCbxqY;8=q)yJ*iGm@^cP+u z?LDlreDkyRd=G7ZUZq@ne_!m!VgD_YiA!G54u!LP9^W{Xn(e4TAm4<|JcFD~s3g7m z)5ie)i7FY+{7nI4Kv|I?r+91u=~62yDSZZ)zZ_KBDLCxmjQOG@y)dVD0vhufp-j|< zRESf}vY3uqxViyx@ta$bOg>%KCKarKiFl+}MmXhY2(nWOiOhBp45o=^+`5`z(M-IM zl1-ZM+?3O02*N83UsqXk*W+g8>~o6zy)>jJmB{G_@lbq6Wgq+78?N7yx=#<2+w0!U zZxL@zP0fT#I9T?Y3Ey{bmY9shR94cO%Pk(v;?~P7Ylx&HgIXO@-iQXmG>F@8P8!D+ zbkbxDmw0D9??mk4aFy`z3-He9p`VDAXU3IG(qWOY@+b@^vN#Vxg+z}9($UW0+akmZ zLd)@JN|hpE5hEqMQbw^DM+QQ|fLpSV=br^46HDPzN{^f*6-`ONm-c^gBh|tXFFKuc z9kcN-$0)KvF5!b_buP>%lE7C8Du(QY=!`XnB&?V-NZjkMRSP06I0#1}L11E9#Li*o ztSipyGg~(Jo+ojUXv0w8>3Dn*t9qT(W9%K+fBf>jOf;#3h-8X^g$Fn-BKx_4EiznI zp1qiLJ>-Yqwq5+lg=COPOYIwEztdS=mX=q8DGR``fio*W(~Gx85d>Lp7 zD|H|(aj4NuEYF-BXD zP4d=GK4~3#?2SEN5Nt^aV_b@F5F-t&8wrG-4U`!t6FTV;h*FrvrP#g?W)p&i5!69J znRA+7pq(L=ENQ71-bx<$*9?@Qa#fgGv@t5;0>lOX;>w4OhQKFb z=)P?T=Ra`tQzK86rx;fn{fv0<>W4(Uk+!B@N^E$Ok=Rc?ZHRXqXo!`Z8Y}s48?^L^ z>~qEdPG-kWR<|vjOCpci?zG(;nb33?h~643lalH;BEM{zBm9miZ9oe(*0O#&)bwob%3?#`2!(8HQ;>ccg%Rk6T4l z+WSew1YTF%S}9LsV^a^43A%p;2!6*(Ai^*Sw%R@)>*h$lbqVPqojqGu0UqkgMcqjk z?hh7|@tMRfvYv-6?Qffh&Bqy8>m;_y(SkC3yjiNPJrK>~02<0ihrEcF`ybMx#G;t6 zB=A<4_2SN$>|8222{+yO<&u#bQImXsC|e57hseX@j>(-O;=@)LGer$mOeABoAkcq< zl;07c4u$1KO`>B62gRb|pAAYXl~26*v|>1or>|m(`_hsl_l4oxAEl%U0bq~+dr;M8 z(otxJWsP2LlK+(9ao`K__iIsA;lnBFDn+Io(*}~4u83_{%vS+SM^bA%yh1wDxf$sD zgYW5MFKaC~>j0zGRiC=w>)+itc-g0b;0r>c#hh=|ojqif+>98J+6B4GKAc5(RyrK# z8%A70>7Wy_C01J!R#K59G*}dk{@PTKc@)nWO@B70?EK(xc_dOkXce)bgC$MHUHU-k z?FbesPu|w}Q4}2GaCT9A*TD!lJaTum)YU*W#bh9+3-Q1GaemB=2ME}@lHs&bA;Wyc zM0fdiDIR&Z@hF^5c=qOhINZ=^*IibHuFQIU?~i9V=(L)l{3zldRwsSwBapIILs*-0 zn2btYEjIbjw$Sq!yb1~$jz2#%Yja763e~X&O*xSp8F7h#9jTC|6b*l|w=0k{HCm&Sa^aUx z@lCZONfPqoin=}%21uL%a9i`mc$6q zpQ7qOGH54QB9zv_)RkkD*U+QTiA2)TvRtNmI)k3!Pa-O59phD!Sgt{$LsE$*#Rj1f z_Ko$?=n3$HhA=`Pd4ysji)@C79pfK1lSJI|=~}c4*5tZ4!R3xFxT7Qujf@1&&Eftw zrQ9rW%?QeLf>)zm>_@)!76Tn=yxx05&|OP)+x8V{0@q90U)rkL>J1Ku<7M=Znm7di zHjhD3c1@XlPRiG{%L)o~9y_V>2J;*F6Q+z(dO)N^M_Naf#Br>wk_j?Soz}of9W?2( zmx90q{-sdp*d?4w6`{kA4QC-bF&Ixmxv3OCNTZ(^%W+gqiMNeA~J@mv;N1=lK*e{rl9^XPAOO|87Qcq}?IMrlElioJQRYH}%FQCc)HzFsg8n&c(eB8mt1Mg)B_KVwZW zxP>HcU*t62BROFnjWNTpzmBsX(uH^8K-QM|D~Crcy)AteAp{=T3agQo58uqZd^)rT z={d-iFBz%hKFBNw%T;89M%@EGj)g*rR5S?#F`}V|u=k1aMXp_4rKQ6reidnsYDh8x z(hK(p;&_~ z3dYZJs>!3Uk}hIesU20D9W|Ns<_J=Y1AJTrv|5ZP6g^rXNL95-(cNJ4XaQ8*vAcM# zKMgZ6%=+yV-r|EZ9h2>}HXxc20qjfD_T#!>nb3>QwnhiJrqM#ixkU6KjqwE8 zaXdP3xFj;Dq7@0ylgux%+|Atzt=k%n^kxyahQ%@1NzU#Qse2gDg~7K0fY{{8UEb@k z=%*PX1u*3nORI{Yz( zO1zD6i&Wf6siY(VL~rpu)LoW=2*cn_tl%-nbg>qk)U3(yxT^MOVA;xpM1so6ZfcJ0vOMJCcsN!3b{jB{BFOcFzdI{k z>*_~-%^qr4JHf?do}O%!D7m{yt$8ln4%%rfwUw=*&RhTh8E9 zP-#ji>_eH$SiN-LYRF4_GQ&4WuJg{foXZDUBlYn=BbN>mpJllYDh#5A4K$90y`t@( zM9PzF*^forVi{I!(7b90r#lc@*?1c38Rccfjexrhy5Lf>z>SD$A?kx!oAinq3Y*7| zlVL3uNk&6A<`;vEgI+Xu?l!PxN8CCx+YycE1v_&~6~5i$OB#2KtwBs$CclW40t5r< zc=>wNA*trMM~s<;gqxY4D+r#uXq@UpRIlbU++Jm&A#D!_{hHq30p0`{^pSh~WQ~Rx zF8M2PB2nc~HzR1}s1DA--A-EpZ6RY-xmr+gSn)9R}vLL=H#`1s%%$z8UwsmM@9 zd^O`{Y(;Il$3PBKHkJn$0|`5_Q$j}a7)Y%{Rd*-+8tN^t8e6VMj1?QMfAHaWd+~`n z8Kae{WXv@<7n?*s&Al|w`Zx z`HZ%DUFp1GfWK?XC=!w0A*^}j;cZymxP!B&;pj@iZ9{6;-ahe96dtVtBQMx=Mlyx_ zfp}ntS@!9Ro!*bY%JTavA&41!b3uM&}zsc!t8X*EX z70x&R&;59>beErK{#3c@VF_rnN^%(Z#>p5CDB`iQnF}3L2ocfXB2MTTJj&62B)@i_ z-N$n^rGfH@10>o4LgzEey@QA&!SFJHl{gVk*0e zGy7X_DKETCsFYoTG|92Cu~WyMF25}5YCU%QYIRkxkIz2Bb>=HY!_&aj?{Ro79KW{} zvXY%AR*)}~-ikE{mm)2z5e0_{Eo#4R$FOq)1_tC9u`*TDk$EX2xftV^J=0?Hod19| zlHst18|!I4AUlmhGK}|um`C$d2Hv#8$5)Nea?jaU8=N4(&VHpLX)>}d(TOgiUAhX3 zn^>}uXprb(C>U4X*khBRg+U@)RBEyoCTgzX*HzLfL-ufs ziomV7AX1XE))Cuwvy=SH%Lp!KK20hCIm!z)y1wpgGSu()nmV`1-(&>`q-f*<_Rw=l ztSrxVnv-3>yMMWk-}HZy5RLBv_o;9l{Wz-G(6sPNjT^mB#s+7`B`W><3zHjKP+Vvf zhFPuC6kL67wIHC@Q4GiH$Gy7%Q4fZ{4=HRn`-0l9pQ5MHB?nB9FiV05TW0i1j$XuV1dfZ?MsP8GHo4!l z*(|c2Xx~J)zm8yIRcD*Wa(FqZDxbH>MDa6&vN z5`Y@9NwJ}WJ4CR0?9HI32aP`5DWeJb)TY)b4`-}U4J6?zH+6(CWA?@B*>LIh;5@FF zC?x1tp@oeDHuknpHd9mz<_i}_d$ws~<4ua~g&%Un=4ne5IF(j-#TRi?Bg3fMc6E;u z$)5$Cq|lAXH8l`1O4#1G_OU}mLcncd9f$N`%B5xG39?^iQa=hG-``nxd*)T9zyMos zQ%B?gYon2iEm+&^oR6<;i%r>tRL^*{X81zxXf%?0t^q)gxv`ow@q6RI| z)b-}V4B;6ebBt!ND9PA{BwZpo@2m_L`GuCW*_7!5gHID=isZ;JD2MZ;X&^4DLk!Fj z$PtOCly&iRfwdW6W9Q_=+WXnnBm|hi9?Jsce9TN)bwMvo6`BxD3L&W1b`t^()`-Z4 zgbX&}F+{>}39wn*BsO;s5jnlT&r3z?Ej4l#jE1rM<{_LHAroUux=CkEt}c+iSv&=q z-qTipz|Ut`qvoPdM#OZ8wP#L|vZDI`fUmS<4W8Hdge(=0%(p77WmeUKl!^tDYYm*Z zM#|l@11R6*KR+yyyRs5$!XVT+n8lO}Uj{G>0n1v|ZxlfWRFoc8)jn*vm{dlVB|8!Z^HJxOocbUnCf)xQeg%I{dfIv7DvX&gk>wm34?G z?XU5qSrb%$G6-k%zc-B8q3cK;X2B^LrpoYY@$6Y7Kz);>Lga@Qq31!6qW9kpe-u)P zh1lCbdX-1VgqA-EGYqjRUOyfKc{^aD!7P|tAe*>=D}5x=i$_%rqZJPvLUiQVRSfik z7sm{l8kH3Tn#z|1j9nuo|K$jf>)vCgP7b5|3ttq!%q`q=6eL z7bipz!wfMWLs!n>2$qc@AdyK3*M5?oR38FgGme3Dhd4+3jYopDc**-8%@Z=u!)V}& zIC%Bxp7R!TEO7Ky`c-yK$fH-&<`2NDzeAQGpQ947gEZ58jwMU=wDmq*mRirkC z7YZo?%OTw`4^OFnrI0j`z23J;c40}MQZl;}gcHLNk*50#DJ@KYHV>bLjLV`w`l_Q%Z<~I+n36Cn`fSPFg*QJl zDr%2f44O_QZ?(-Bb}TU^M81#&?5LH^)9utTeH8TT9zZHeAwkSr=^aTs4ig>*Er6>^Ig!iv{_BD8Pyy`^o zw^54z-~u%erRXp8OUgFzHYC}&$?yvH$CiEvqnnm-?75un3uW=ka=&AjrIDmYb; z6qj1P@!G?f6VY`1Wz*LOoTT^uY4@(%!x62KjFWzIIM2q@x6^?lMFqXJEZayj}gMRqSOKlAGwcy(J-Pcf*|4#!q-#6 zQkxHE5ktzW3=*>i#rR2^?4iKKhF`)Hgfz1PmT@1988ys5RgLqUvDdJ%7fBj}O)nXa z6&68Z1pb4yn4MH3V145d1v((_ug`B__gR*O(*u7^A)g!bX*{@ks6XC z4Wf~R;fRXR%$(NcL+0Q&^>+Jpf0KUOuc9W1q2@>*qrq{85w`nfM(b9I;1#%9Pj}O! z6W#Sz8$LIhB8f5t-Y4$*$n1k$$yH^RD%1vYqBlSGH0gwf9kqhBVGSNAxL+zzZG**CI*v}JVoCtymC1jdIP>nL~Fq*#n?l>ZsAzts2;lWZZE z3#4p9&*sM*4AFFmd8*WCh4ZU0C%?g1@U+p6ouSrhbJAsTKQxEM1fnoBQSlpz7Mx_<2T$PU?|As4OfnXQH$(pakmV~#R^~Mk)2!c z1@D>vfctTpz|CV+(r3Xm@yG8J&TB43?tO$-_=b+#wCkm_j*KBfiykoGwm^rxRRc`% zFE2EC^kf{5E+AwBx<*a+7kD>YtYJcT2dFPQotd)J*`;~dy=uH&#ZCEHS)DbO@xX?& zWn!!>)EWq;(pZB44bD?K@QvpoJksbsu?upAO%b(Yj)B1#(LF>f zCrd2KcFF3h7nuP@LxWewFW4Y;#L*pFc+y_DtsF9NmypFG`I=2lpA>x_tz4)EkKdpy zN0XnUV?;r=@x~qdO*8y7z6&pU1RY){Gr8WJuO(^;^m?|n8VGll66%WkiUXYT?5RI0l99CClI?3u z@(CIELku|NRF2BV4N=@}M0b^Yyz^PZbd4+q$Z)xr1B@db_21Ejfy1>yKKBvdJe}5m zWv1?Jiggo$-BY#$s)tV&nMVPP`5ad_RJsIdVM-Py4Z&l6aDpOvFK&$m>DC z8+&mC8*k!*xko>#i1RhroAN9(KI?HcX}kY!V*f$8v}0D|YKD>khA@SVIFW@_y!yo^ z`LIr0Yu?3jm%_Dr3&(+fVDli$^n*GZ$)meSNvEIkVjSRIcAM(m>8sS3Zkgu#j!Jto z6^iY#Ip&HT;s}lBiw6{rOn-Z!rdX9&a5E`01>RT=5pdl|? zErScF=837lc44CApGAMzn_v;c#2STz#_Qn{d3WTt#d7?qB5uFoRs*x)L|C{?`T zB-e6Hea0H+=LEK?mqpn18e}5&{i^S|0iwFkkKeWek!>qN62hWa1K9>@Be3WE04wFz zOqrPR*_SCM`=dzwR>a!ebpv(^wv*We@zRVr6=pxhptC!qGQ81zR`Q75HH-`L zbrH2e%)hwtH71Rvud;VD{&aWnOpu5N8n+6`z8V$G4-oxQX+7f8>AP;<<|dJn5BIL49mDxG54=~?5RZfn>A_Y4r%uilbwhgPavWk9f;GK{bQ8(d zElx_JBo@H+$EfeBHY|n0wZ58IJe(4bnz~#vT#uohJzL9X?>zhTf4zY`*6w%I8Q$!- zyV+cPa=bHgG+41t{K^($5%9sYZsbit<#;3-_a!g}x4{Lrk;0Sses6SZd4j(LA5TFS z+MNf-dALHGlA(?0DqJWkn}1Y=t!S$6L456|uv4&A^)Mcyivv?iHS<|RyX{XCR&fuZ zZX!Y-CnJa!>`Cj&Po|MD|ANP=+nA}kM`Hk0^Z6^`!2JXln-W+b#@ zM}p}c=_`Q~~3aQvF`GpDjFZ!0;(F9_A^ z8sv#lzg9Z8)u1H?j4@!yDPe?-aT*k(n3(3P0&2^5T6UgQ!~2S6;pioTD_F$#0vA5El^;kCzXwu;imA-Wz=v9swO_N-riwBv-l zL_|l5CX^4 zMG7r~vO4PZizz^3FfS&^U^O`;=!wu8xR##ysVPT zw6txwmpS6L%uYK7dMq-Cm;g9(8T&eubcHSE9B8ntgIqxmS_h-bD7*8L$ml=N%r?oX z+jr{PcRz5>U^RC2w>6#R&g**oGX`dHPz~66wxS-W#xV0M~_jO;VVW$npIkV*tD+Ot1=Ju;5|n zTM$!dlU5d-g{httGck|~!dnlL1c_n7@2G&5k`|jOU}HA`9MN6OhQtSnj1R7)|C?1d z!6-3v4l~0miV3_<_1u`UEhUhkp1ufL;~+8|_kdlTp6PCDYD0T!!Ti=vJiHJaJ<-!z zly_l)N3froop>R%qOb5wE^NhBQBQrMSS2|lqfYceovHf|?^8S~PuhT(B1eC*|I z2;zrthEuOp$9|S@s*9}&Q`pfJ}uD(9$(CEhBvZkN?^jqE%oDE zvUu#=x3_yW-L@p`LCP8_xTGZrmk`2IE=2Aw9BG{z6@JJgBtJ+te9culcF6{!UnI87 zGOHf)wF=aax9p2gDBb1Ko2L8{Ziq2Ykbos^^5DS9#C96Og)JwiY=d#3vjT5eafvu- zU1@16QG#DYWZkjCq;N3 z9>1-HB;xxK60ucz;El!ow@a^X4H3lk>S1uydQ5=_=o8|i_72+Q$~EMf8BB+Nz|s;a zh(Dsx%%=B|-uqjt)dRiP6TVVKmN!k&*jOP$BQ5`8M8mLyV4*>X%5y4%LCj*pk%acj z&Nr{!yH^q1B82H#*I5&WMq3Z_bfI~1K;!n*cvle$uNF!f)8d-AkG60ZKO=bNbb>^K z?N9<<6K@G)_M$5%r|&Niiid2xpUr@pg3;q8$V8ZpvKzvSAhh19QB+yOSR7ze4MM2l z5$^d5?V6S&711q1b0lxI^ZY9G{HpPzu(uu~e}28m+UqI;$^CM`F-kO?$njDWv`dG> z!aR%2Z7LeL>H?JUz8+WY5kf|eX%P*Nj(03`ku>^rh}x2-Wz=IKzkGh6g%7`Wu!OQ` z4Gx7Q4%JxTFR`MwIP@eAFtSojzmodIUnnIe(H2Hx{5@2OzPX}RgAp@LECh9qgdMmn z0zcuEZ;f_D3ZX4M6(r)HT^=PkAHTy~R`%JsXg5vDC&YV15}*dg{*GBQabM?9JrNFA z*SkfH7{-d4@fSQf&TzO1GVR8q2Qn&uxObNpa7SJ6CLq?_VTq~+CJ*T;s_Me0urCBA zAbD`-1@5x1m@Qs|){GxMqAhLew!E)M5Z#T39I^wF{rxR*)8jbxY&`F?9m9Cjn`=YB zIi_YN&HBt<&cP)j-Ej#78pMK;7eJP}Tr~I-UX}HYrTOBd{*?1EXLISJwtq%}`3u%P)J7qE3d2z(ujtdr0@_0eeK7I2vDp=H3Mh<=;prjAPe z9KwlI5mb{^tNyd7O;Qvl6PAtSaLwzdovyi>c_H%wvI~woD@+ufG9Y3zZ+ye_NAuTI zC1YBKM{Wajx;}W%$mLy5GoMmJ)lQ7*P3Ig2eIO9>-l8Ah!MRt$}WhIjYC@cqZu=x-tGxN{`ck}x%Ar*FkBVeO_%Ib&0AZ_5AEccUWedYcciQe?|CN4#-yyI*#LgbaNC2u*Z&%pW??qc>GBY{3{#*F`9kv%Dn~W zsDOP9EPqP2ynz=ctST*dDNqK=L1M8KE?Wvj=p}SaM z?MSqZUukh|OkF$zsYPbN(xZY=K3*phjZaGyUi69;dCTPJ@yKk1t^FY^cxusgYfmtK z6ot63$T}Dtl1;hoDQEE2WgYt($bBe#>We{&}!R8 zahoW9oBn!wrYtnvc))eN`d^+`4dW7-j&zw(NbU20!ZbaLA?-d-w@qf_!N7{6Thk`Q zk4lgfHe2^&SewnxM+)*b|NS}S0W3iLj`8=0IR2*djBe4>7R!2KtWww`KF<$UQXY;4!ucY-e={#Z= z>o)Dqr>L*`&Xw=V_w+R!wFq=PrGJ4b7DXMHS^hZ(T&f~SBoM| zCUc8kZ(G+{i)vVG*RM7#s(ce<9&(1<5~GA{rN>vJ+DG*;rC-pd|J(xetXlw zwwZu{{lQo?e}#|l+v)rDmM7Ky{K}0O;3!t`6+catL@`_GC10fejBcB!U66x~d-Lhv z_cBsfi$^`Biv4H(I_`Sb_MZhxFxAW)(9P;^`ae^;;ca`n@R&Vilr zhR5c6Dhq-@a6i1{_;%QO?shX>3qMhFeBjW>n?!hst}yzU-zXp7&-puXoS@5|2=rPxijgF2! zi6%mR&(lcXINv`UUjJ(Av0U4|7+ks7FVyGQU_D5Ew>|$Xux{+nvdiS(PNos*;fm!UW-IL@o}x@3x9m=y}AE<8fGQG&!Hisdh8HuC>Ux zC0kmGc-Ot*CGyfg4*^{80FCC{8!(Nf!^RrDauM0flbvce!>r$iCzXL7_ zf;zt^l8!=iarx_>L#+r-czzexVzqW#Z9Cpf>>DvWP4-b)^mgsvPL^HVLBE`R8l{-L zC;ui3leWas3ghqf{0C*e3kHkBbGsj&>s1Pf?!BrsG%uF&1AhG6InNVm&(A$8q;8vR zrl)lTS57rLekhhzKW?&~v+ev^Kl%ou`2Ln^k2i0B>yKAPkQ5cvnhIENz~21L!_>L+ zVs9ty^tzxbT*Swc2b56r%n_FGz+{>=4uxM)p(Qmt9?QQe~wz+1Ha zKKq;w?d!PhC}?e_4R>3yENGkt7YmzIY#)C}O0>fvA8M{{UWsT*9Djq4iR0390edp- z+8M(5*^3H!=fu!_wNs5>Gdd+xD~XL_#igSLCc*BWZ_rZYW8r)1VN$IX7QA=#K&*hG_ zySI`5`i}rX2PM&#$MMUI-=jfYN8=|_Hnr+b%J7!}gSNv?Lln_!f!WN1x?fHLOJ^LO zd>Ve>1)tKE{#PyGo$?$3qi0`pSsrc!b*n1X51N?(zI76VbC~;~K)c^|UK82;*1@&! z%$D+AOUL@b$-bu-O}D_?Dw>-s6NeRVRLv;D6s;)@nap@*A(%aB+K?T>+{v9#V36vuLP0wN3U+%{w~cR&kHB-vxIu z*QUyG@1=~ZpIN3g-;?sTU*?MW%`*E6p>X+qm`~;Kx2I8it*Oy=f6hfr6Vt18CY|45 z(5#h4dVCfoHg!pG3nx#j@y|lhk&4itkX)I(xly*mt>W^(xx}1}e-5j;fqbM}Q?g;4 z<5;i80Ts&bhfH=4k(wDj?+7QPE)|bswV-9RkWbfk8ZAHAs9W^k!K{uwyBsY)Q(-++Gy&crCsc3*;!&*$i`| z_!C(fsf3~ydCAtLH`2JD`>=gj$aL9hD1MFZ4u<)_^D;c*<$24Ti=OY>wh2_U!qhTs zIa^N*=SpGESNM1poe3{OT%wH0>yeqd!@7E#yE8>7M*9rxkH_jCJ7X|)~ z&3r`oDIOcmu+lKNRm~xlMFIvQ3NTrM`Q|In$XFR{%nk=9zj3W9F9qDcr^qm4B1k`= z0u%vB6(%&>QgJQ#k@=94*F{XYGH7Fd98`V) z*@VvM>faQ*ZSx%6M-$~7)9boE+}5cde^4Pwn$F<9&kiEWe`#y!v#fNpzbp$lw)Wz; znZogUsckMmkPp}fdY%X19&IM@zMZ3otfzjveV+&}jWCf=DCFYcV&^ow4&Qxef69(N z#4;68kmC33Zsq1U-An)adVNLwQh>iQ3KZz^Sm^zwtrMwwb5@*zPFRyB4DWsqp~UY z0=sMermxR8edg)hw&nWbUjCa2qBv4g&mGZMDveLQ9Jl9DGT>1q*YiAH?-9BljuI2+ z=$G|-++NBRHO?|3+LQa#Ab|He(J^tIWBj&J{q9NrEIqO5c7eINx|-_*X>4jL9)oSl z_uz;4e0}H>o~{eT>;`P|*7O5)A6q%5xvcKg!su%1Z+rwZT~FxrY?@O@k@>*e(FK6>(rvU=OKK=K<01wWdo-I`%cN3AjH{{@V9Oe;ZT=1jck7H-Zt35XBn*tvm;@_Sn zV5vSTAg}9}d`@k7fNa&FybsT#B<_Zb!*Okn7ut{7iw+|)u2hhowjXYoj)AgPU`Ok$bfr}Pc^9` zib|iya(s11(*qle;`7c!@bUohU7e)fgCD%IJ);zKK6@EfW^Pv-5MM73%TY}N>z?~2 zI+%QGvPe)TVix3HB{n)BAa2`!g9(_v4!YavV}=@yA5h(oy&wHq%h!`!UXjhstmg{} zOz*y)NnCQSJioSm!MDa;1#UH6cL^Ap7rNJ3xMy-X>Yc~aRqT0S`!4GsvX;SZ-T0DK zC+aVLj$X=qdF=!VwsK#Gkvu}f@+$7%2xk0+@8WN0f1>BdSXcBri<;VO(9cr(L$cpS zhS((R5(3hJtD~R0qR7q@|5b)YIT;g zAAY+Jz58wosGr}xJ}v>j8_7@RpP_KF5#AK!1HAS5D_wW)IiImPJPNA%=7XrUr@bGq zn2oikTTD1-=TUvTHQ-^(;PP#-7x;Mm`o%u22YK&yPzQZR#|Uo|@fLG&XAQ2D{JR0! zhrjv6x)glNN`DdFXY-Vf-V8xQ^AWGVp8=06ytJv{QE}sq@d9cZF-qhV$s2UwB_Bw86#M9)hNs25DvC@_Rq-2rPB?+=m5Jix_1x{G;Dz z+uvy7H@I@S}Xr>9K&O>Y<9Qw&$KYMZb5R3U^Gt}oY+6uW~aWnRAba#zn6 zzXF73OJveczV`QX73vV8wp3*{qZ%?cK(%#5Ac-7|gvCu| zCg$?n-!{xAZ8iyfcV7vwPiL|}v{Lx7zJJ~hb_Feapt1U4pIlLo@e~d?ebaYco%G+ z^quXk>*JGB*vIxiWrWT znxjRKkf>QmkPsE&Nv`X@p1#k{`u!88SPZV%)HQ(c)|ZTulGZ!n_~4x%+A_H5A$?(ENk3i+P>o9eQ2Q! zy&d*btvv=p+gC4@w2iu`PV>d*V%*BVQ<@KRrCL#!VxYK5= z1j3v^BS8>|R=hNQ=|jtO^-}rrKUe9>^pG6|>1TuS80VZwt=DAOl1QpE+jLms)5q)# z-ALQ4+&rW(n(gk4zuY@;F#9sQ;K28RsRidEiZPlrIQQHTDeaH3pV$c*Y;#soQHHpf z4t%Swr;c-?fY9j_BB7E<9M#9iTJSvo56VgAqYDFnYsYSM)Hf0;9)jlGGau#eO^R~} zR%wFmMJIF|&Z}FBpduBceQ_Imax{{|j4=salk@f9beyoc>@ZGS!SL%h1e-(IiAIbU znZCN4c&9)pS~QJ(whN4T&9=$eUu(*ecn-?7QE#Z7h=8 zNLvM2SuXWS+Y43GS~!Q4$wtXC<_ci?%6f?n4FV+csPRi$sq}X+OP#ma&mF z8}KEL17!Jvp*kqDKbV3|t8<0Xc?V3|SGjZ#|0CA;>-oU84Avx>BpQej58e6rFWJ@6 z$b-IjUG9q3M}v^n`2Z?G=#+ju4Fnapa?z)z^d1hLlobO;$>@_@s-dlJVY`JDLlT*6 z3xJV}(Z{J1OGO4%lDz0jgoUWwW2UE2!R>XryS4z^6eZgfxetZ_-*P?|r#bS@Vwnd& zvL`Pn!>0=xen(y@<44@*@y?)-q#k6V6<`DVlk&w3Q1*J1*3)=OQ*w&`>leWuWa|M_ ztPw=ItSh^U`9TSWP~duLr-)4#!MJd%m6-KcdYY|-uzhcrsj9)8biHS=UJo0&w07he zjLjVDSQ+V9*iM{YNOr_ZE=WpENZqhqKXiD)?jEoh*5Scra(aw)CN<*2&G!`3UA$s` zS9Jtb&WQQq1ZE5+B9}f<=sDMh(O}#Cfd!3mwYr`+`S9Z|+!p{(+%}U4{K1BI{8_vtDRC{LyjX{kphrIi4+L$r1!|wbW z&6xKdP)3_?U$Z9Afqbl#aP5HfW&xg34@kiZaGR7-VPmEd#ZsUc&glER{?H|WpXQ1f z^~9GI6^6p0o26Hg7d_5Dq_`%=ygG{J`{n?7rRA~r1ygq? z{oKO^s;ymRRmC<(Z%7Ffe!t6e3(d4w#JKEzp0R6Z6I&ZbMl`CS<(;#of+_vNc9BvQ z@jb#hAbo{;R!i60p{Q{Al?rv?Vz(ro9s*0;&(Zm^STV$V`uv*2%I@z?d80p+ zYQI!?sI<0S@_*uE0`!DsxwxobU(k;4^M+zlqjgEq^^aO zT8NTl5I<_tD=!$La?Jf!`)LOs2KRV~?gqO??vqB^Tj@O+u#D^}(Nk>?P^j``Fc{}U zre%r@<*bANT`o#vX`h%T19;$iD*|F$ZNRa%L0|X80RCzlN3`7XrGL|`Y&qE-wn*L& zjPYC;%A2IRNU^X82JAHtEG5C+2SED0nGkw9G8KPbWdgTgO)pO=rYr5l*EQEdXVd=O zdL2-97m@{fb#{;lP5tO}*B-E%3qmzMDg+WL>}d>6lYh_(S;27BB1&_hs;X?JZs)Zp zIKcZ#obrG2AHB)j=J!r&SH<-JVfa&hUoyE3af;fT@ZrbhtzdGa9jl21H4JV&h#jFi4GATXMNY<b2l+p7z84jpu?qw3xKDGFtTfz^6^ZJ^5VlT=u4tE9VDRF$}nP5BD%|I~mCC%0mA@ zlJH8WbTheOhiP-8!VxR=YAP(kCcVlyex_qJZ0X;epXY?JR&F)eVaNZ#B`^VYK8 zcdoCEK@7M^sY$8#m8R}dlC~{=q%j|`Zp?}DpSb}M5imPV&A#YCZw(tN(UN{)nuiu3 zWed*4bNYj7qt*wmy^HhV@5QMVlSceZ2im7TUp{6zCOC#Xr;qs#t*AQf?rrfWKjuJu z*WTOBhN}WkeDH4AXr{%^H>4{cwqpZ#d^Cc6BPhZmr-s1*m9~b1mdgI9E4a})Rz3;( z_(pF1(5cIxl*SI$tB$bd#bll}jW+vSQ^lX;x>ZHE<4KUVdf3EUfEbdFTYM2>O-1n` zR}&1!ge|kA$K$dY-6`$Aeir`zJUNZ@FL!DDpU6RIA+@!&1Az&aMzwW!HI`5|a`)oq zysXH-++veH$=C$%u34|6;l4--$qJ3Zz|B}&Lx>W$jBAf7I)M2N^P==^mw2)A?qhP2Ln9tK56#TQ8_ zbim`fnXj32M(A??Qr zKIAY!a_#(sVbKwXh2+(-OzK|*m7wwGyA!X)(x*dM+r48n-|F%Rw=m*ELhIU1g9s6V z64kjHop7#A_JD!MZ*uQ}DGCq^3Z6iH5{V3Qom?)uCbp$dM3HD2L}d0o!=^aHevO(j zC}O5C$$mL;Yui)GPUVVN(=kp{Z^n=J4_YL*$C?fsy+_VqMxbIFo%I9ts$kA`02C^< z#y_SpkkM?p&uw`3$tZl;_jP10gUJ=9&OGY*du4x#Jw&YTRF9pxP4khNZ zBh-{YZ|P!v3?L3-IxD2SN>%QFYN`P%{n@@%*)WIr7mhJ5#4p+y97{+9ur#~xZ7><=EbuNgS zjC9OxCiE-_rw}E8jZ$Sw%E8LxvlH!q@l2BYUz5VXeIJZU_U8}tTj*BnjyK^prGTsl zQowYHGH2z9y|0DRbWnSf*Y894NNeOVrEbSYR^MM4KhG4I+_&9miKT?I5#uxf(n?_1 z1y{11@w1`xVZov}k2Z3Bsj8~a(%dS0l&g2`m}hD3O+cCzn+|Fe8xL0HSe}N{GL$d* zeIT{bW-6j@B{>OKTs_O--0q1~^52^24tVh3XQgvq4|XusTX9mjZk7Mzn=!X zGP*RVARIAdh+_RCF$}<18re2YTgOj{n$KuNw|G-K5l7F^3gaBvog>qgQeVPfeyX5C zf_l$f#mL3%jAiZ4l=fdW3bErWxtSxwQ&UzAv&qj&hO)!VO^HCO_^lZuei0YfVR_VL9^x_Z2Hh?rVW;fS+0 zzs(5-E>G6!-bm`9ikRc1S68Wp_M3llLS!yw*{6YVV3>{Ai-ffC0UmB?QEv2o10f=G zYwlHs(V><`DimTI2xyJxgJFakw(YQ%@iEai?iy<5ooDibAe@odic(bHoxM0yNRC>C z^FJ1bw@B)f+hW zTZ3PJ`=L{9NHj~M@d^WlKXOV^U!3DEpK44%y$_E!%JX2ICYg)pxQxKJH@Lfa4xI|L z;F3f;d8+?O)c0H-7VtgqEX`v^O1N0S(2Ypd{%tF8N{0tB0O=*3&SD*JnaS7aQ=VJjVkT_WBiB@PLKC^OjV&Oh=77<@5g<^WUBM|9i|1U`7$v z0(^W4CKWJ08`AZM{O?3vhDvn!1(Fl4U$ON(emeLf<*25YO*UVmX@{z8*&m`un@$A3 z%&NO+kzk@qIVxuNN$9u7NA$n+Pky*yf;bxdGP&%YfRF~@)XxR~JJP4Ef7AbBYIlKO zAWJ}UGZa`XdQ@HLlzZW&48Fv>{3+1}Ip2kTJ0T!hW1V?Bp`$qAdTXwQkATn-{*;HP kzH=tr+Lr47@$ZNyy}Zqm5p3V!lA-x--?Y3@W$KpnKV)EJqW}N^ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 997e80f8181357d8da7b6ce5618b36ddac832cf5..565b219141564127b79ae2c203bab70e9dbad114 100644 GIT binary patch literal 26436 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 literal 9640 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 tdu+6!ING!x?Tn1}l1BTLwCRb{pNH?#l% literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..e193c43ad36d7146ae3d4598caf9aaaeb181ee02 GIT binary patch literal 36730 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

    0rdRe%3or6ycm}9j)Q+Je?mk;~?yo`I6u2~lE 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

    0rdRe%3or6ycm}9j)Q+Je?mk;~?yo`I6u2~lE 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/launch_background false false + false shortEdges 0&dnpGjV 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 QZKnZKLkojaePqo404sKC!vFvP literal 26233 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 diff --git a/assets/images/rainfall.png b/assets/images/rainfall.png index 25e3ad5c296f9d0c9bed22889fe51a2e7678b1c7..6ce5abba7f96c462770b0f9e2b5282c2f5d0c14b 100644 GIT binary patch literal 21025 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

    ~aAZP8GkXFC(SoKP_#jFjFx*5l(6q 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 diff --git a/assets/images/temperature.png b/assets/images/temperature.png index db3249ed16e6db1c8b9445cfc1779142b4876c69..059c7ea8cda50026320d5a61ec4495fa1da6ac9d 100644 GIT binary patch literal 15139 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 FV1n5Qu}J^` diff --git a/assets/images/uv-index.png b/assets/images/uv-index.png deleted file mode 100644 index 8bf66cf4aca4ba083edd495c98dafc993507ee75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35696 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%0D>!?dx_oXwSvSBt{rxh;&;g@mMGX zoRMj(B7R^{#kV+g(fvoL;Ql3ghj*V+ZK@n4z;f`{eqC{k!ztK>L@OQO^LC-r z3rwQIc)YS!|Ln=<-2@!%JeJ+knaXmHwu+;&Ea1kgPwawf)TKC&?FPBYv z!1+MBE4Sik_jUbGwS|0ieWvkv_@i?Dudt{gcZM}Np5NlYWWnZ1=YQ zojY6U3gH@a7Ddmo$)h>u2_+>sJM$J#e;onQIYZ;I+AsStajnN~Ws?dw?u}!a?RCct zGgCIrvqSpW95(sjp0zy*#Uyl2&5L`mV@nSljr;3zrDgh^BlICQmvJU!6S@ z%MVm6OlwEpX4*#!Bg5|S*c@zfx}U^yy))J5-`z62^}s~@?|*{(ly4dug7{_G^8!&f({Hv+{M-B=HB?Y5Hx4GIo>@dSeNpLu$oHWPaH=tu+Tv;*BTzxZq5-C zS+yC|zNQ7>gGtk`B}@6C0dJx|tCt-_aGPAVJzEulf?7rm≧)aV`GAX`v-w1R)L@ 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 GNdFI@hK!N` diff --git a/assets/images/uv.png b/assets/images/uv.png new file mode 100644 index 0000000000000000000000000000000000000000..6bbd5f6d0773520941430bf2fd1a1ab401705b7f GIT binary patch literal 27068 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 literal 0 HcmV?d00001 diff --git a/assets/images/water.png b/assets/images/water.png index 504e2e476aae25d009515aa71492571b4983573e..6f0135d33e654e8cd2f25676c147eea2279e5e63 100644 GIT binary patch literal 27647 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%0Dd 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 literal 20991 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 diff --git a/assets/images/wind-direction.png b/assets/images/wind-direction.png deleted file mode 100644 index 153d2e3cffbad99c8e21f259e7fee1c6a59fe285..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12523 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 G=>Gs*d>C#3 literal 0 HcmV?d00001 diff --git a/lib/app/api/api.dart b/lib/app/api/api.dart index 67166e2..18cd26e 100644 --- a/lib/app/api/api.dart +++ b/lib/app/api/api.dart @@ -14,7 +14,7 @@ class WeatherAPI { Future getWeatherData(double? lat, double? lon) async { String baseUrlHourly = - 'latitude=$lat&longitude=$lon&hourly=temperature_2m,relativehumidity_2m,apparent_temperature,precipitation,rain,weathercode,surface_pressure,visibility,evapotranspiration,windspeed_10m,winddirection_10m,cloudcover,uv_index&timezone=auto&forecast_days=7'; + 'latitude=$lat&longitude=$lon&hourly=temperature_2m,relativehumidity_2m,apparent_temperature,precipitation,rain,weathercode,surface_pressure,visibility,evapotranspiration,windspeed_10m,winddirection_10m,windgusts_10m,cloudcover,uv_index&timezone=auto&forecast_days=7'; String urlHourly; settings.measurements == 'imperial' && settings.degrees == 'fahrenheit' ? urlHourly = @@ -27,7 +27,7 @@ class WeatherAPI { : urlHourly = baseUrlHourly; String baseUrlDaily = - 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,windspeed_10m_max&forecast_days=16&timezone=auto'; + 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,windspeed_10m_max,windgusts_10m_max&forecast_days=16&timezone=auto'; String urlDaily; settings.degrees == 'fahrenheit' ? urlDaily = '$baseUrlDaily&temperature_unit=fahrenheit' @@ -52,6 +52,7 @@ class WeatherAPI { evapotranspiration: weatherDataHourly.hourly.evapotranspiration, windspeed10M: weatherDataHourly.hourly.windspeed10M, winddirection10M: weatherDataHourly.hourly.winddirection10M, + windgusts10M: weatherDataHourly.hourly.windgusts10M, cloudcover: weatherDataHourly.hourly.cloudcover, uvIndex: weatherDataHourly.hourly.uvIndex, timeDaily: weatherDataDaily.daily.time, @@ -64,6 +65,7 @@ class WeatherAPI { sunset: weatherDataDaily.daily.sunset, precipitationSum: weatherDataDaily.daily.precipitationSum, windspeed10MMax: weatherDataDaily.daily.windspeed10MMax, + windgusts10MMax: weatherDataDaily.daily.windgusts10MMax, timezone: weatherDataHourly.timezone, timestamp: DateTime.now(), ); @@ -104,7 +106,7 @@ class WeatherAPI { Future getWeatherCard(double? lat, double? lon, String city, String district, String timezone) async { String baseUrlHourly = - 'latitude=$lat&longitude=$lon&hourly=temperature_2m,relativehumidity_2m,apparent_temperature,precipitation,rain,weathercode,surface_pressure,visibility,evapotranspiration,windspeed_10m,winddirection_10m,cloudcover,uv_index&timezone=auto&forecast_days=7'; + 'latitude=$lat&longitude=$lon&hourly=temperature_2m,relativehumidity_2m,apparent_temperature,precipitation,rain,weathercode,surface_pressure,visibility,evapotranspiration,windspeed_10m,winddirection_10m,windgusts_10m,cloudcover,uv_index&timezone=auto&forecast_days=7'; String urlHourly; settings.measurements == 'imperial' && settings.degrees == 'fahrenheit' ? urlHourly = @@ -117,7 +119,7 @@ class WeatherAPI { : urlHourly = baseUrlHourly; String baseUrlDaily = - 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,windspeed_10m_max&forecast_days=16&timezone=auto'; + 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,windspeed_10m_max,windgusts_10m_max&forecast_days=16&timezone=auto'; String urlDaily; settings.degrees == 'fahrenheit' ? urlDaily = '$baseUrlDaily&temperature_unit=fahrenheit' @@ -142,6 +144,7 @@ class WeatherAPI { evapotranspiration: weatherDataHourly.hourly.evapotranspiration, windspeed10M: weatherDataHourly.hourly.windspeed10M, winddirection10M: weatherDataHourly.hourly.winddirection10M, + windgusts10M: weatherDataHourly.hourly.windgusts10M, cloudcover: weatherDataHourly.hourly.cloudcover, uvIndex: weatherDataHourly.hourly.uvIndex, timeDaily: weatherDataDaily.daily.time, @@ -154,6 +157,7 @@ class WeatherAPI { sunset: weatherDataDaily.daily.sunset, precipitationSum: weatherDataDaily.daily.precipitationSum, windspeed10MMax: weatherDataDaily.daily.windspeed10MMax, + windgusts10MMax: weatherDataDaily.daily.windgusts10MMax, lat: lat, lon: lon, city: city, diff --git a/lib/app/api/daily.dart b/lib/app/api/daily.dart index 4e550d8..ac4c080 100644 --- a/lib/app/api/daily.dart +++ b/lib/app/api/daily.dart @@ -23,6 +23,7 @@ class Daily { this.sunset, this.precipitationSum, this.windspeed10MMax, + this.windgusts10MMax, }); List? time; @@ -35,6 +36,7 @@ class Daily { List? sunset; List? precipitationSum; List? windspeed10MMax; + List? windgusts10MMax; factory Daily.fromJson(Map json) => Daily( time: List.from(json["time"].map((x) => DateTime.parse(x))), @@ -53,5 +55,7 @@ class Daily { List.from(json["precipitation_sum"].map((x) => x)), windspeed10MMax: List.from(json["windspeed_10m_max"].map((x) => x)), + windgusts10MMax: + List.from(json["windgusts_10m_max"].map((x) => x)), ); } diff --git a/lib/app/api/hourly.dart b/lib/app/api/hourly.dart index ba4196c..09b6300 100644 --- a/lib/app/api/hourly.dart +++ b/lib/app/api/hourly.dart @@ -28,6 +28,7 @@ class Hourly { this.evapotranspiration, this.windspeed10M, this.winddirection10M, + this.windgusts10M, this.cloudcover, this.uvIndex, }); @@ -44,6 +45,7 @@ class Hourly { List? evapotranspiration; List? windspeed10M; List? winddirection10M; + List? windgusts10M; List? cloudcover; List? uvIndex; @@ -65,6 +67,7 @@ class Hourly { windspeed10M: List.from(json["windspeed_10m"].map((x) => x)), winddirection10M: List.from(json["winddirection_10m"].map((x) => x)), + windgusts10M: List.from(json["windgusts_10m"].map((x) => x)), cloudcover: List.from(json["cloudcover"].map((x) => x)), uvIndex: List.from(json["uv_index"].map((x) => x)), ); diff --git a/lib/app/controller/controller.dart b/lib/app/controller/controller.dart index 78c5c9a..dce94b9 100644 --- a/lib/app/controller/controller.dart +++ b/lib/app/controller/controller.dart @@ -289,6 +289,7 @@ class LocationController extends GetxController { element.evapotranspiration = _weatherCard.value.evapotranspiration; element.windspeed10M = _weatherCard.value.windspeed10M; element.winddirection10M = _weatherCard.value.winddirection10M; + element.windgusts10M = _weatherCard.value.windgusts10M; element.timeDaily = _weatherCard.value.timeDaily; element.weathercodeDaily = _weatherCard.value.weathercodeDaily; element.temperature2MMax = _weatherCard.value.temperature2MMax; @@ -301,6 +302,7 @@ class LocationController extends GetxController { element.sunset = _weatherCard.value.sunset; element.precipitationSum = _weatherCard.value.precipitationSum; element.windspeed10MMax = _weatherCard.value.windspeed10MMax; + element.windgusts10MMax = _weatherCard.value.windgusts10MMax; element.timestamp = DateTime.now(); await isar.weatherCards.put(element); } @@ -330,6 +332,7 @@ class LocationController extends GetxController { weatherCard.evapotranspiration = _weatherCard.value.evapotranspiration; weatherCard.windspeed10M = _weatherCard.value.windspeed10M; weatherCard.winddirection10M = _weatherCard.value.winddirection10M; + weatherCard.windgusts10M = _weatherCard.value.windgusts10M; weatherCard.timeDaily = _weatherCard.value.timeDaily; weatherCard.weathercodeDaily = _weatherCard.value.weathercodeDaily; weatherCard.temperature2MMax = _weatherCard.value.temperature2MMax; @@ -342,6 +345,7 @@ class LocationController extends GetxController { weatherCard.sunset = _weatherCard.value.sunset; weatherCard.precipitationSum = _weatherCard.value.precipitationSum; weatherCard.windspeed10MMax = _weatherCard.value.windspeed10MMax; + weatherCard.windgusts10MMax = _weatherCard.value.windgusts10MMax; weatherCard.timestamp = DateTime.now(); await isar.weatherCards.put(weatherCard); }); diff --git a/lib/app/data/weather.dart b/lib/app/data/weather.dart index e95c0d8..4a57cf3 100644 --- a/lib/app/data/weather.dart +++ b/lib/app/data/weather.dart @@ -30,6 +30,7 @@ class MainWeatherCache { List? evapotranspiration; List? windspeed10M; List? winddirection10M; + List? windgusts10M; List? cloudcover; List? uvIndex; List? timeDaily; @@ -42,6 +43,7 @@ class MainWeatherCache { List? sunset; List? precipitationSum; List? windspeed10MMax; + List? windgusts10MMax; String? timezone; DateTime? timestamp; @@ -58,6 +60,7 @@ class MainWeatherCache { this.evapotranspiration, this.windspeed10M, this.winddirection10M, + this.windgusts10M, this.cloudcover, this.uvIndex, this.timeDaily, @@ -70,6 +73,7 @@ class MainWeatherCache { this.sunset, this.precipitationSum, this.windspeed10MMax, + this.windgusts10MMax, this.timezone, this.timestamp, }); @@ -106,6 +110,7 @@ class WeatherCard { List? evapotranspiration; List? windspeed10M; List? winddirection10M; + List? windgusts10M; List? cloudcover; List? uvIndex; List? timeDaily; @@ -118,6 +123,7 @@ class WeatherCard { List? sunset; List? precipitationSum; List? windspeed10MMax; + List? windgusts10MMax; double? lat; double? lon; String? city; @@ -138,6 +144,7 @@ class WeatherCard { this.evapotranspiration, this.windspeed10M, this.winddirection10M, + this.windgusts10M, this.cloudcover, this.uvIndex, this.timeDaily, @@ -150,6 +157,7 @@ class WeatherCard { this.sunset, this.precipitationSum, this.windspeed10MMax, + this.windgusts10MMax, this.lat, this.lon, this.city, diff --git a/lib/app/data/weather.g.dart b/lib/app/data/weather.g.dart index 4ae6791..2203315 100644 --- a/lib/app/data/weather.g.dart +++ b/lib/app/data/weather.g.dart @@ -1207,13 +1207,23 @@ const MainWeatherCacheSchema = CollectionSchema( name: r'winddirection10M', type: IsarType.longList, ), - r'windspeed10M': PropertySchema( + r'windgusts10M': PropertySchema( id: 24, + name: r'windgusts10M', + type: IsarType.doubleList, + ), + r'windgusts10MMax': PropertySchema( + id: 25, + name: r'windgusts10MMax', + type: IsarType.doubleList, + ), + r'windspeed10M': PropertySchema( + id: 26, name: r'windspeed10M', type: IsarType.doubleList, ), r'windspeed10MMax': PropertySchema( - id: 25, + id: 27, name: r'windspeed10MMax', type: IsarType.doubleList, ) @@ -1394,6 +1404,18 @@ int _mainWeatherCacheEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.windgusts10M; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } + { + final value = object.windgusts10MMax; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } { final value = object.windspeed10M; if (value != null) { @@ -1439,8 +1461,10 @@ void _mainWeatherCacheSerialize( writer.writeLongList(offsets[21], object.weathercode); writer.writeLongList(offsets[22], object.weathercodeDaily); writer.writeLongList(offsets[23], object.winddirection10M); - writer.writeDoubleList(offsets[24], object.windspeed10M); - writer.writeDoubleList(offsets[25], object.windspeed10MMax); + writer.writeDoubleList(offsets[24], object.windgusts10M); + writer.writeDoubleList(offsets[25], object.windgusts10MMax); + writer.writeDoubleList(offsets[26], object.windspeed10M); + writer.writeDoubleList(offsets[27], object.windspeed10MMax); } MainWeatherCache _mainWeatherCacheDeserialize( @@ -1474,8 +1498,10 @@ MainWeatherCache _mainWeatherCacheDeserialize( weathercode: reader.readLongList(offsets[21]), weathercodeDaily: reader.readLongList(offsets[22]), winddirection10M: reader.readLongList(offsets[23]), - windspeed10M: reader.readDoubleList(offsets[24]), - windspeed10MMax: reader.readDoubleList(offsets[25]), + windgusts10M: reader.readDoubleList(offsets[24]), + windgusts10MMax: reader.readDoubleList(offsets[25]), + windspeed10M: reader.readDoubleList(offsets[26]), + windspeed10MMax: reader.readDoubleList(offsets[27]), ); object.id = id; return object; @@ -1540,6 +1566,10 @@ P _mainWeatherCacheDeserializeProp

    ( return (reader.readDoubleList(offset)) as P; case 25: return (reader.readDoubleList(offset)) as P; + case 26: + return (reader.readDoubleList(offset)) as P; + case 27: + return (reader.readDoubleList(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); } @@ -5879,6 +5909,352 @@ extension MainWeatherCacheQueryFilter }); } + QueryBuilder + windgusts10MIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'windgusts10M', + )); + }); + } + + QueryBuilder + windgusts10MIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'windgusts10M', + )); + }); + } + + QueryBuilder + windgusts10MElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'windgusts10M', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'windgusts10M', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'windgusts10M', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'windgusts10M', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10M', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + windgusts10MIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10M', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + windgusts10MIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10M', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + windgusts10MLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10M', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + windgusts10MLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10M', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + windgusts10MLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10M', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + + QueryBuilder + windgusts10MMaxIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'windgusts10MMax', + )); + }); + } + + QueryBuilder + windgusts10MMaxIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'windgusts10MMax', + )); + }); + } + + QueryBuilder + windgusts10MMaxElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'windgusts10MMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MMaxElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'windgusts10MMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MMaxElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'windgusts10MMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MMaxElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'windgusts10MMax', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MMaxLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10MMax', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + windgusts10MMaxIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10MMax', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + windgusts10MMaxIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10MMax', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + windgusts10MMaxLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10MMax', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + windgusts10MMaxLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10MMax', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + windgusts10MMaxLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10MMax', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + QueryBuilder windspeed10MIsNull() { return QueryBuilder.apply(this, (query) { @@ -6475,6 +6851,20 @@ extension MainWeatherCacheQueryWhereDistinct }); } + QueryBuilder + distinctByWindgusts10M() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'windgusts10M'); + }); + } + + QueryBuilder + distinctByWindgusts10MMax() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'windgusts10MMax'); + }); + } + QueryBuilder distinctByWindspeed10M() { return QueryBuilder.apply(this, (query) { @@ -6665,6 +7055,20 @@ extension MainWeatherCacheQueryProperty }); } + QueryBuilder?, QQueryOperations> + windgusts10MProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'windgusts10M'); + }); + } + + QueryBuilder?, QQueryOperations> + windgusts10MMaxProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'windgusts10MMax'); + }); + } + QueryBuilder?, QQueryOperations> windspeed10MProperty() { return QueryBuilder.apply(this, (query) { @@ -7750,13 +8154,23 @@ const WeatherCardSchema = CollectionSchema( name: r'winddirection10M', type: IsarType.longList, ), - r'windspeed10M': PropertySchema( + r'windgusts10M': PropertySchema( id: 28, + name: r'windgusts10M', + type: IsarType.doubleList, + ), + r'windgusts10MMax': PropertySchema( + id: 29, + name: r'windgusts10MMax', + type: IsarType.doubleList, + ), + r'windspeed10M': PropertySchema( + id: 30, name: r'windspeed10M', type: IsarType.doubleList, ), r'windspeed10MMax': PropertySchema( - id: 29, + id: 31, name: r'windspeed10MMax', type: IsarType.doubleList, ) @@ -7949,6 +8363,18 @@ int _weatherCardEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.windgusts10M; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } + { + final value = object.windgusts10MMax; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } { final value = object.windspeed10M; if (value != null) { @@ -7998,8 +8424,10 @@ void _weatherCardSerialize( writer.writeLongList(offsets[25], object.weathercode); writer.writeLongList(offsets[26], object.weathercodeDaily); writer.writeLongList(offsets[27], object.winddirection10M); - writer.writeDoubleList(offsets[28], object.windspeed10M); - writer.writeDoubleList(offsets[29], object.windspeed10MMax); + writer.writeDoubleList(offsets[28], object.windgusts10M); + writer.writeDoubleList(offsets[29], object.windgusts10MMax); + writer.writeDoubleList(offsets[30], object.windspeed10M); + writer.writeDoubleList(offsets[31], object.windspeed10MMax); } WeatherCard _weatherCardDeserialize( @@ -8037,8 +8465,10 @@ WeatherCard _weatherCardDeserialize( weathercode: reader.readLongList(offsets[25]), weathercodeDaily: reader.readLongList(offsets[26]), winddirection10M: reader.readLongList(offsets[27]), - windspeed10M: reader.readDoubleList(offsets[28]), - windspeed10MMax: reader.readDoubleList(offsets[29]), + windgusts10M: reader.readDoubleList(offsets[28]), + windgusts10MMax: reader.readDoubleList(offsets[29]), + windspeed10M: reader.readDoubleList(offsets[30]), + windspeed10MMax: reader.readDoubleList(offsets[31]), ); object.id = id; return object; @@ -8111,6 +8541,10 @@ P _weatherCardDeserializeProp

    ( return (reader.readDoubleList(offset)) as P; case 29: return (reader.readDoubleList(offset)) as P; + case 30: + return (reader.readDoubleList(offset)) as P; + case 31: + return (reader.readDoubleList(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); } @@ -12897,6 +13331,352 @@ extension WeatherCardQueryFilter }); } + QueryBuilder + windgusts10MIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'windgusts10M', + )); + }); + } + + QueryBuilder + windgusts10MIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'windgusts10M', + )); + }); + } + + QueryBuilder + windgusts10MElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'windgusts10M', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'windgusts10M', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'windgusts10M', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'windgusts10M', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10M', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + windgusts10MIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10M', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + windgusts10MIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10M', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + windgusts10MLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10M', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + windgusts10MLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10M', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + windgusts10MLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10M', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + + QueryBuilder + windgusts10MMaxIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'windgusts10MMax', + )); + }); + } + + QueryBuilder + windgusts10MMaxIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'windgusts10MMax', + )); + }); + } + + QueryBuilder + windgusts10MMaxElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'windgusts10MMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MMaxElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'windgusts10MMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MMaxElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'windgusts10MMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MMaxElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'windgusts10MMax', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + windgusts10MMaxLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10MMax', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + windgusts10MMaxIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10MMax', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + windgusts10MMaxIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10MMax', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + windgusts10MMaxLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10MMax', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + windgusts10MMaxLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10MMax', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + windgusts10MMaxLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'windgusts10MMax', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + QueryBuilder windspeed10MIsNull() { return QueryBuilder.apply(this, (query) { @@ -13596,6 +14376,19 @@ extension WeatherCardQueryWhereDistinct }); } + QueryBuilder distinctByWindgusts10M() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'windgusts10M'); + }); + } + + QueryBuilder + distinctByWindgusts10MMax() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'windgusts10MMax'); + }); + } + QueryBuilder distinctByWindspeed10M() { return QueryBuilder.apply(this, (query) { return query.addDistinctBy(r'windspeed10M'); @@ -13802,6 +14595,20 @@ extension WeatherCardQueryProperty }); } + QueryBuilder?, QQueryOperations> + windgusts10MProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'windgusts10M'); + }); + } + + QueryBuilder?, QQueryOperations> + windgusts10MMaxProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'windgusts10MMax'); + }); + } + QueryBuilder?, QQueryOperations> windspeed10MProperty() { return QueryBuilder.apply(this, (query) { diff --git a/lib/app/modules/weather.dart b/lib/app/modules/weather.dart index 888ebed..2e34ff1 100644 --- a/lib/app/modules/weather.dart +++ b/lib/app/modules/weather.dart @@ -261,6 +261,15 @@ class _WeatherPageState extends State { '${locationController.mainWeather.cloudcover![locationController.hourOfDay.value]}%', desc: 'cloudcover'.tr, ), + DescWeather( + imageName: 'assets/images/windgusts.png', + value: statusImFa.getSpeed(locationController + .mainWeather + .windgusts10M![ + locationController.hourOfDay.value] + .round()), + desc: 'windgusts'.tr, + ), DescWeather( imageName: 'assets/images/uv.png', value: diff --git a/lib/app/modules/weather_card.dart b/lib/app/modules/weather_card.dart index 1e88e8d..53c2bfc 100644 --- a/lib/app/modules/weather_card.dart +++ b/lib/app/modules/weather_card.dart @@ -263,6 +263,13 @@ class _WeatherCardPageState extends State { '${widget.weatherCard.cloudcover![timeNow]}%', desc: 'cloudcover'.tr, ), + DescWeather( + imageName: 'assets/images/windgusts.png', + value: statusImFa.getSpeed(widget + .weatherCard.windgusts10M![timeNow] + .round()), + desc: 'windgusts'.tr, + ), DescWeather( imageName: 'assets/images/uv.png', value: diff --git a/lib/translation/translation.dart b/lib/translation/translation.dart index 33c80b3..28adccb 100644 --- a/lib/translation/translation.dart +++ b/lib/translation/translation.dart @@ -91,6 +91,7 @@ class Translation extends Translations { 'uvVeryHigh': 'Очень высокий', 'uvExtreme': 'Экстремальный', 'weatherMore': 'Прогноз погоды на 16 дней', + 'windgusts': 'Шквал', }, 'en_US': { 'start': 'Get Started', @@ -180,6 +181,7 @@ class Translation extends Translations { 'uvVeryHigh': 'Very high', 'uvExtreme': 'Extreme', 'weatherMore': '16-day weather forecast', + 'windgusts': 'Gust', }, 'fr_FR': { 'start': 'Démarrer', @@ -270,6 +272,7 @@ class Translation extends Translations { 'uvVeryHigh': 'Très élevé', 'uvExtreme': 'Extrême', 'weatherMore': 'Prévisions météo pour 16 jours', + 'windgusts': 'Rafale', }, 'it_IT': { 'start': 'Clicca per iniziare', @@ -360,6 +363,7 @@ class Translation extends Translations { 'uvVeryHigh': 'Molto alto', 'uvExtreme': 'Estremo', 'weatherMore': 'Previsioni del tempo per 16 giorni', + 'windgusts': 'Raffica', }, 'de_DE': { 'start': 'Los gehts', @@ -450,6 +454,7 @@ class Translation extends Translations { 'uvVeryHigh': 'Sehr hoch', 'uvExtreme': 'Extrem', 'weatherMore': '16-Tage-Wettervorhersage', + 'windgusts': 'Böe', }, 'tr_TR': { 'start': 'Başlat', @@ -539,6 +544,7 @@ class Translation extends Translations { 'uvVeryHigh': 'Çok yüksek', 'uvExtreme': 'Aşırı', 'weatherMore': '16 günlük hava tahmini', + 'windgusts': 'Bir telaş', }, 'pt_BR': { 'start': 'Iniciar', @@ -628,6 +634,7 @@ class Translation extends Translations { 'uvVeryHigh': 'Muito alto', 'uvExtreme': 'Extremo', 'weatherMore': 'Previsão do tempo para 16 dias', + 'windgusts': 'Rajadas', }, 'es_ES': { 'start': 'Empezar', @@ -718,6 +725,7 @@ class Translation extends Translations { 'uvVeryHigh': 'Muy alto', 'uvExtreme': 'Extremo', 'weatherMore': 'Pronóstico del tiempo para 16 días', + 'windgusts': 'Ráfagas' }, 'sk_SK': { 'start': 'Začať', @@ -755,7 +763,8 @@ class Translation extends Translations { 'hPa': 'hPa', 'settings': 'Set.', 'no_inter': 'Žiadny internet', - 'on_inter': 'Pripojte sa na internet a získajte meteorologické údaje.', + 'on_inter': + 'Pripojte sa na internet a získajte meteorologické údaje.', 'location': 'Poloha', 'no_location': 'Ak chcete získať údaje o počasí pre aktuálnu polohu, povoľte službu určovania polohy.', @@ -776,8 +785,7 @@ class Translation extends Translations { 'district': 'Okres', 'noWeatherCard': 'Pridať mesto', 'deletedCardWeather': 'Vymazať mesto', - 'deletedCardWeatherQuery': - 'Naozaj chcete odstrániť mesto?', + 'deletedCardWeatherQuery': 'Naozaj chcete odstrániť mesto?', 'delete': 'Odstrániť', 'cancel': 'Zrušiť', 'time': 'Čas v meste', @@ -807,6 +815,7 @@ class Translation extends Translations { 'uvVeryHigh': 'Veľmi vysoký', 'uvExtreme': 'Extrémny', 'weatherMore': 'Predpoveď počasia na 16 dní', + 'windgusts': 'Squall' }, }; } From 6d070a1d7e9613281318b48a8e614cccc3309e37 Mon Sep 17 00:00:00 2001 From: Fabian Date: Sun, 23 Apr 2023 23:03:19 +0200 Subject: [PATCH 006/246] Added Dutch translation --- lib/translation/translation.dart | 89 ++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/lib/translation/translation.dart b/lib/translation/translation.dart index 28adccb..8fff322 100644 --- a/lib/translation/translation.dart +++ b/lib/translation/translation.dart @@ -817,5 +817,94 @@ class Translation extends Translations { 'weatherMore': 'Predpoveď počasia na 16 dní', 'windgusts': 'Squall' }, + 'nl_NL': { + 'start': 'Beginnen', + 'description': + 'Weer app dat zowel real-time verwachtingen, als uurlijkse, dagelijkse en weekelijkse verwachtingen biedt voor elke locatie.', + 'name': 'Weer', + 'search': 'Zoeken...', + 'loading': 'Laden...', + 'searchCity': 'Vind jouw stad', + 'humidity': 'Luchtvochtigheid', + 'wind': 'Wind', + 'visibility': 'Zichtbaarheid', + 'feels': 'Voelt', + 'evaporation': 'Verdamping', + 'precipitation': 'Neerslag', + 'direction': 'Richting', + 'pressure': 'Druk', + 'rain': 'Regen', + 'clear_sky': 'Heldere lucht', + 'cloudy': 'Bewolkt', + 'overcast': 'Betrokken', + 'fog': 'Mist', + 'drizzle': 'Motregen', + 'drizzling_rain': 'Ijskoude motregen', + 'freezing_rain': 'Ijskoude regen', + 'heavy_rains': 'Regendouche', + 'snow': 'Sneeuw', + 'thunderstorm': 'Onweersbui', + 'kph': 'km/h', + 'mph': 'mph', + 'mi': 'mi', + 'km': 'km', + 'inch': 'inch', + 'mm': 'mm', + 'hPa': 'hPa', + 'settings': 'Instellingen.', + 'no_inter': 'Geen Internet', + 'on_inter': 'Schakel Internet in om meteorologische gegevens te ontvangen.', + 'location': 'Locatie', + 'no_location': + 'Schakel de locatiedienst in om weer gegevens voor de huidige locatie te ontvangen.', + 'about': 'Over ons', + 'aboutDesc': + 'Dit is een open source project.\nAls je van ons werk houdt, plaats een paar 🌟 and ❤ op de repositories.', + 'author': 'Gemaakt met ❤ door', + 'theme': 'Donker thema', + 'low': 'Laag', + 'high': 'Hoog', + 'normal': 'Normaal', + 'lat': 'Breedtegraad', + 'lon': 'Lengtegraad', + 'notFound': 'Niks gevonden', + 'enter_name': 'Vul naam in', + 'create': 'Creëer', + 'city': 'Stad', + 'district': 'District', + 'noWeatherCard': 'Voeg een stad toe', + 'deletedCardWeather': 'Verwijder een city', + 'deletedCardWeatherQuery': + 'Weet je zeker dat je de stad wilt verwijderen?', + 'delete': 'Verwijder', + 'cancel': 'Annuleer', + 'time': 'Tijd in de stad', + 'validateName': 'Vul de naam in', + 'measurements': 'Meetsysteem', + 'degrees': 'Graden', + 'celsius': 'Celsius', + 'fahrenheit': 'Fahrenheit', + 'imperial': 'Imperiaal', + 'metric': 'Metrisch', + 'validateValue': 'Vul een waarde in', + 'validateNumber': 'Vul een geldig nummer in', + 'validate90': 'Waarde moet tussen -90 and 90 zijn', + 'validate180': 'Waarde moet tussen -180 and 180 zijn', + 'notifications': 'Notificaties', + 'sunrise': 'Zonsopkomst', + 'sunset': 'Zonsondergang', + 'timeformat': 'Tijdnotatie', + '12': '12-uur', + '24': '24-uur', + 'cloudcover': 'Bewolking', + 'uvIndex': 'UV-index', + 'materialColor': 'Gebruik systeem kleur (Android 12+)', + 'uvLow': 'Laag', + 'uvAverage': 'Matig', + 'uvHigh': 'Hoog', + 'uvVeryHigh': 'Erg hoog', + 'uvExtreme': 'Extreem', + 'weatherMore': '16-daagse weersverwachting', + }, }; } From 6be493a07c6b6c5a1e5aa0d270e98d5dd5f919af Mon Sep 17 00:00:00 2001 From: Yoshi Date: Mon, 24 Apr 2023 09:13:06 +0300 Subject: [PATCH 007/246] added nl_NL --- README.md | 4 ++-- lib/main.dart | 1 + lib/translation/translation.dart | 4 +++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 952a834..ea98011 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ An application for viewing the weather in your city - Просмотр погоды по часам - Просмотр погоды на неделю - Просмотр подробных данных о погоде -- Локализация (ru/en/it/de/fr/tr/pt/es/sk) +- Локализация (ru/en/it/de/fr/tr/pt/es/sk/nl) - Кэширование данных - Выбор города самостоятельно - Добавление карточек других городов @@ -33,7 +33,7 @@ The following options are provided: - View weather by hour - View the weather for the week - View detailed weather data -- Localization (ru/en/it/de/fr/tr/pt/es/sk) +- Localization (ru/en/it/de/fr/tr/pt/es/sk/nl) - Data caching - Choose the city yourself - Adding cards of other cities diff --git a/lib/main.dart b/lib/main.dart index 6131c5f..567add3 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -95,6 +95,7 @@ class MyApp extends StatelessWidget { Locale('pt', 'BR'), Locale('es', 'ES'), Locale('sk', 'SK'), + Locale('nl', 'NL'), ], localeResolutionCallback: (locale, supportedLocales) { for (var supportedLocale in supportedLocales) { diff --git a/lib/translation/translation.dart b/lib/translation/translation.dart index 8fff322..106decc 100644 --- a/lib/translation/translation.dart +++ b/lib/translation/translation.dart @@ -853,7 +853,8 @@ class Translation extends Translations { 'hPa': 'hPa', 'settings': 'Instellingen.', 'no_inter': 'Geen Internet', - 'on_inter': 'Schakel Internet in om meteorologische gegevens te ontvangen.', + 'on_inter': + 'Schakel Internet in om meteorologische gegevens te ontvangen.', 'location': 'Locatie', 'no_location': 'Schakel de locatiedienst in om weer gegevens voor de huidige locatie te ontvangen.', @@ -905,6 +906,7 @@ class Translation extends Translations { 'uvVeryHigh': 'Erg hoog', 'uvExtreme': 'Extreem', 'weatherMore': '16-daagse weersverwachting', + 'windgusts': 'Windstoten' }, }; } From ef108e5403dcc16e83450afbad73c87037ac0544 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Mon, 24 Apr 2023 21:29:51 +0300 Subject: [PATCH 008/246] issues #46, #39 --- assets/images/github.png | Bin 0 -> 25977 bytes lib/app/data/weather.dart | 1 + lib/app/data/weather.g.dart | 75 ++++++++-- lib/app/modules/about.dart | 140 ------------------- lib/app/modules/settings.dart | 63 ++++++++- lib/app/modules/weather.dart | 208 +++++----------------------- lib/app/modules/weather_card.dart | 159 +++------------------ lib/app/widgets/desc_container.dart | 141 +++++++++++++++++++ lib/app/widgets/message.dart | 47 +++++++ lib/app/widgets/setting_links.dart | 24 +++- lib/theme/theme.dart | 34 ++++- lib/theme/theme_controller.dart | 7 + lib/translation/translation.dart | 176 ++++++++++++++--------- pubspec.lock | 4 +- pubspec.yaml | 2 +- 15 files changed, 532 insertions(+), 549 deletions(-) create mode 100644 assets/images/github.png delete mode 100644 lib/app/modules/about.dart create mode 100644 lib/app/widgets/desc_container.dart create mode 100644 lib/app/widgets/message.dart diff --git a/assets/images/github.png b/assets/images/github.png new file mode 100644 index 0000000000000000000000000000000000000000..3cde44d81d7748da8edcebb568dc26905c3282f4 GIT binary patch literal 25977 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

    k7z4j$eJz~5aD|Ux51s(DdwQfg2T^T7 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 literal 0 HcmV?d00001 diff --git a/lib/app/data/weather.dart b/lib/app/data/weather.dart index 4a57cf3..174837c 100644 --- a/lib/app/data/weather.dart +++ b/lib/app/data/weather.dart @@ -10,6 +10,7 @@ class Settings { bool location = false; bool notifications = false; bool materialColor = false; + bool oledScreens = false; String measurements = 'metric'; String degrees = 'celsius'; String timeformat = '24'; diff --git a/lib/app/data/weather.g.dart b/lib/app/data/weather.g.dart index 2203315..9ed60ee 100644 --- a/lib/app/data/weather.g.dart +++ b/lib/app/data/weather.g.dart @@ -42,18 +42,23 @@ const SettingsSchema = CollectionSchema( name: r'notifications', type: IsarType.bool, ), - r'onboard': PropertySchema( + r'oledScreens': PropertySchema( id: 5, + name: r'oledScreens', + type: IsarType.bool, + ), + r'onboard': PropertySchema( + id: 6, name: r'onboard', type: IsarType.bool, ), r'theme': PropertySchema( - id: 6, + id: 7, name: r'theme', type: IsarType.bool, ), r'timeformat': PropertySchema( - id: 7, + id: 8, name: r'timeformat', type: IsarType.string, ) @@ -95,9 +100,10 @@ void _settingsSerialize( writer.writeBool(offsets[2], object.materialColor); writer.writeString(offsets[3], object.measurements); writer.writeBool(offsets[4], object.notifications); - writer.writeBool(offsets[5], object.onboard); - writer.writeBool(offsets[6], object.theme); - writer.writeString(offsets[7], object.timeformat); + writer.writeBool(offsets[5], object.oledScreens); + writer.writeBool(offsets[6], object.onboard); + writer.writeBool(offsets[7], object.theme); + writer.writeString(offsets[8], object.timeformat); } Settings _settingsDeserialize( @@ -113,9 +119,10 @@ Settings _settingsDeserialize( object.materialColor = reader.readBool(offsets[2]); object.measurements = reader.readString(offsets[3]); object.notifications = reader.readBool(offsets[4]); - object.onboard = reader.readBool(offsets[5]); - object.theme = reader.readBoolOrNull(offsets[6]); - object.timeformat = reader.readString(offsets[7]); + object.oledScreens = reader.readBool(offsets[5]); + object.onboard = reader.readBool(offsets[6]); + object.theme = reader.readBoolOrNull(offsets[7]); + object.timeformat = reader.readString(offsets[8]); return object; } @@ -139,8 +146,10 @@ P _settingsDeserializeProp

    ( case 5: return (reader.readBool(offset)) as P; case 6: - return (reader.readBoolOrNull(offset)) as P; + return (reader.readBool(offset)) as P; case 7: + return (reader.readBoolOrNull(offset)) as P; + case 8: return (reader.readString(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); @@ -582,6 +591,16 @@ extension SettingsQueryFilter }); } + QueryBuilder oledScreensEqualTo( + bool value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'oledScreens', + value: value, + )); + }); + } + QueryBuilder onboardEqualTo( bool value) { return QueryBuilder.apply(this, (query) { @@ -817,6 +836,18 @@ extension SettingsQuerySortBy on QueryBuilder { }); } + QueryBuilder sortByOledScreens() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'oledScreens', Sort.asc); + }); + } + + QueryBuilder sortByOledScreensDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'oledScreens', Sort.desc); + }); + } + QueryBuilder sortByOnboard() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'onboard', Sort.asc); @@ -928,6 +959,18 @@ extension SettingsQuerySortThenBy }); } + QueryBuilder thenByOledScreens() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'oledScreens', Sort.asc); + }); + } + + QueryBuilder thenByOledScreensDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'oledScreens', Sort.desc); + }); + } + QueryBuilder thenByOnboard() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'onboard', Sort.asc); @@ -999,6 +1042,12 @@ extension SettingsQueryWhereDistinct }); } + QueryBuilder distinctByOledScreens() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'oledScreens'); + }); + } + QueryBuilder distinctByOnboard() { return QueryBuilder.apply(this, (query) { return query.addDistinctBy(r'onboard'); @@ -1057,6 +1106,12 @@ extension SettingsQueryProperty }); } + QueryBuilder oledScreensProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'oledScreens'); + }); + } + QueryBuilder onboardProperty() { return QueryBuilder.apply(this, (query) { return query.addPropertyName(r'onboard'); diff --git a/lib/app/modules/about.dart b/lib/app/modules/about.dart deleted file mode 100644 index 18b66ed..0000000 --- a/lib/app/modules/about.dart +++ /dev/null @@ -1,140 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:get/get.dart'; -import 'package:iconsax/iconsax.dart'; -import 'package:package_info_plus/package_info_plus.dart'; -import 'package:url_launcher/url_launcher.dart'; - -class AboutPage extends StatefulWidget { - const AboutPage({super.key}); - - @override - State createState() => _AboutPageState(); -} - -class _AboutPageState extends State { - String? appVersion; - - Future infoVersion() async { - final PackageInfo packageInfo = await PackageInfo.fromPlatform(); - setState(() { - appVersion = packageInfo.version; - }); - } - - @override - void initState() { - infoVersion(); - super.initState(); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - automaticallyImplyLeading: false, - backgroundColor: context.theme.scaffoldBackgroundColor, - surfaceTintColor: Colors.transparent, - elevation: 0, - centerTitle: true, - leading: IconButton( - onPressed: () { - Get.back(); - }, - icon: const Icon( - Iconsax.arrow_left_1, - size: 20, - ), - splashColor: Colors.transparent, - highlightColor: Colors.transparent, - ), - title: Text( - 'about'.tr, - style: context.theme.textTheme.titleLarge, - ), - ), - body: Center( - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - children: [ - const SizedBox(height: 20), - Container( - padding: const EdgeInsets.all(35), - decoration: BoxDecoration( - shape: BoxShape.circle, - color: context.theme.colorScheme.secondaryContainer, - ), - child: Image.asset( - 'assets/icons/logo.png', - scale: 5, - ), - ), - const SizedBox(height: 15), - Text( - 'Rain', - style: context.theme.textTheme.titleLarge?.copyWith( - fontWeight: FontWeight.w600, - fontSize: 40, - ), - ), - Text( - 'v$appVersion', - style: context.theme.textTheme.labelLarge?.copyWith( - fontWeight: FontWeight.w400, - fontSize: 16, - ), - ), - const SizedBox(height: 15), - SizedBox( - width: 320, - child: Text( - 'aboutDesc'.tr, - style: context.theme.textTheme.labelLarge?.copyWith( - height: 1.3, - fontWeight: FontWeight.w400, - fontSize: 16, - ), - textAlign: TextAlign.center, - ), - ), - MaterialButton( - highlightColor: Colors.transparent, - onPressed: () async { - final Uri url = - Uri.parse('https://github.com/DarkMooNight/Rain'); - - if (!await launchUrl(url, - mode: LaunchMode.externalApplication)) { - throw Exception('Could not launch $url'); - } - }, - child: Text( - 'GitHub', - style: context.theme.textTheme.titleLarge?.copyWith( - fontWeight: FontWeight.w600, - color: Colors.cyan, - fontSize: 28, - ), - ), - ), - ], - ), - Padding( - padding: const EdgeInsets.fromLTRB(5, 30, 5, 20), - child: Text( - '${'author'.tr} DARK NIGHT', - style: context.theme.textTheme.labelLarge?.copyWith( - fontWeight: FontWeight.w400, - fontSize: 16, - ), - textAlign: TextAlign.center, - ), - ), - ], - ), - ), - ); - } -} diff --git a/lib/app/modules/settings.dart b/lib/app/modules/settings.dart index d24d11d..7151987 100644 --- a/lib/app/modules/settings.dart +++ b/lib/app/modules/settings.dart @@ -1,11 +1,12 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:iconsax/iconsax.dart'; +import 'package:package_info_plus/package_info_plus.dart'; import 'package:rain/app/data/weather.dart'; -import 'package:rain/app/modules/about.dart'; import 'package:rain/app/widgets/setting_links.dart'; import 'package:rain/main.dart'; import 'package:rain/theme/theme_controller.dart'; +import 'package:url_launcher/url_launcher.dart'; class SettingsPage extends StatefulWidget { const SettingsPage({super.key}); @@ -16,6 +17,20 @@ class SettingsPage extends StatefulWidget { class _SettingsPageState extends State { final themeController = Get.put(ThemeController()); + String? appVersion; + + Future infoVersion() async { + final PackageInfo packageInfo = await PackageInfo.fromPlatform(); + setState(() { + appVersion = packageInfo.version; + }); + } + + @override + void initState() { + infoVersion(); + super.initState(); + } @override Widget build(BuildContext context) { @@ -30,6 +45,7 @@ class _SettingsPageState extends State { text: 'theme'.tr, switcher: true, dropdown: false, + info: false, value: Get.isDarkMode, onChange: (_) { if (Get.isDarkMode) { @@ -43,12 +59,28 @@ class _SettingsPageState extends State { ), // SettingLinks( // icon: Icon( + // Iconsax.mobile, + // color: context.theme.iconTheme.color, + // ), + // text: 'oledScreens'.tr, + // switcher: true, + // dropdown: false, + // info: false, + // value: settings.oledScreens, + // onChange: (value) { + // themeController.changeThemeDark(value); + // setState(() {}); + // }, + // ), + // SettingLinks( + // icon: Icon( // Iconsax.colorfilter, // color: context.theme.iconTheme.color, // ), // text: 'materialColor'.tr, // switcher: true, // dropdown: false, + // info: false, // value: settings.materialColor, // onChange: (value) { // isar.writeTxn(() async { @@ -66,6 +98,7 @@ class _SettingsPageState extends State { // text: 'notifications'.tr, // switcher: true, // dropdown: false, + // info: false, // value: settings.notifications, // onChange: (value) { // isar.writeTxn(() async { @@ -83,6 +116,7 @@ class _SettingsPageState extends State { text: 'location'.tr, switcher: true, dropdown: false, + info: false, value: settings.location, onChange: (value) { isar.writeTxn(() async { @@ -100,6 +134,7 @@ class _SettingsPageState extends State { text: 'degrees'.tr, switcher: false, dropdown: true, + info: false, dropdownName: settings.degrees.tr, dropdownList: ['celsius'.tr, 'fahrenheit'.tr], dropdownCange: (String? newValue) { @@ -119,6 +154,7 @@ class _SettingsPageState extends State { text: 'measurements'.tr, switcher: false, dropdown: true, + info: false, dropdownName: settings.measurements.tr, dropdownList: ['metric'.tr, 'imperial'.tr], dropdownCange: (String? newValue) { @@ -138,6 +174,7 @@ class _SettingsPageState extends State { text: 'timeformat'.tr, switcher: false, dropdown: true, + info: false, dropdownName: settings.timeformat.tr, dropdownList: ['12'.tr, '24'.tr], dropdownCange: (String? newValue) { @@ -150,14 +187,30 @@ class _SettingsPageState extends State { ), SettingLinks( icon: Icon( - Iconsax.info_circle, + Iconsax.code_circle, color: context.theme.iconTheme.color, ), - text: 'about'.tr, + text: 'version'.tr, switcher: false, dropdown: false, - onPressed: () => Get.to(() => const AboutPage(), - transition: Transition.downToUp), + info: true, + textInfo: '$appVersion', + ), + SettingLinks( + icon: Image.asset( + 'assets/images/github.png', + scale: 20, + ), + text: '${'project'.tr} GitHub', + switcher: false, + dropdown: false, + info: false, + onPressed: () async { + final Uri url = Uri.parse('https://github.com/DarkMooNight/Rain'); + if (!await launchUrl(url, mode: LaunchMode.externalApplication)) { + throw Exception('Could not launch $url'); + } + }, ), ], ), diff --git a/lib/app/modules/weather.dart b/lib/app/modules/weather.dart index 2e34ff1..eda0411 100644 --- a/lib/app/modules/weather.dart +++ b/lib/app/modules/weather.dart @@ -1,9 +1,8 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:rain/app/controller/controller.dart'; -import 'package:rain/app/widgets/desc.dart'; +import 'package:rain/app/widgets/desc_container.dart'; import 'package:rain/app/widgets/shimmer.dart'; -import 'package:rain/app/widgets/status_im_fa.dart'; import 'package:rain/app/widgets/sunset_sunrise.dart'; import 'package:rain/app/widgets/weather_daily.dart'; import 'package:rain/app/widgets/weather_now.dart'; @@ -18,8 +17,6 @@ class WeatherPage extends StatefulWidget { } class _WeatherPageState extends State { - final locale = Get.locale; - final statusImFa = StatusImFa(); final locationController = Get.put(LocationController()); @override @@ -139,179 +136,36 @@ class _WeatherPageState extends State { ), Obx( () => locationController.isLoading.isFalse - ? Container( - margin: const EdgeInsets.only(bottom: 15), - padding: const EdgeInsets.only(top: 22, bottom: 5), - decoration: BoxDecoration( - color: context.theme.colorScheme.primaryContainer, - borderRadius: const BorderRadius.all( - Radius.circular(20), - ), - ), - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - DescWeather( - imageName: 'assets/images/humidity.png', - value: - '${locationController.mainWeather.relativehumidity2M![locationController.hourOfDay.value]}%', - desc: 'humidity'.tr, - ), - DescWeather( - imageName: 'assets/images/wind.png', - value: statusImFa.getSpeed(locationController - .mainWeather - .windspeed10M![ - locationController.hourOfDay.value] - .round()), - desc: 'wind'.tr, - ), - DescWeather( - imageName: 'assets/images/fog.png', - value: statusImFa.getVisibility( - locationController - .mainWeather.visibility![ - locationController.hourOfDay.value]), - desc: 'visibility'.tr, - ), - ], - ), - const SizedBox(height: 5), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - DescWeather( - imageName: 'assets/images/temperature.png', - value: - '${locationController.mainWeather.apparentTemperature![locationController.hourOfDay.value].round()}°', - desc: 'feels'.tr, - ), - DescWeather( - imageName: 'assets/images/evaporation.png', - value: statusImFa.getPrecipitation( - locationController - .mainWeather - .evapotranspiration![ - locationController - .hourOfDay.value] - .abs()), - desc: 'evaporation'.tr, - ), - DescWeather( - imageName: 'assets/images/rainfall.png', - value: statusImFa.getPrecipitation( - locationController - .mainWeather.precipitation![ - locationController.hourOfDay.value]), - desc: 'precipitation'.tr, - ), - ], - ), - const SizedBox(height: 5), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - DescWeather( - imageName: 'assets/images/windsock.png', - value: - '${locationController.mainWeather.winddirection10M![locationController.hourOfDay.value]}°', - desc: 'direction'.tr, - ), - DescWeather( - imageName: 'assets/images/atmospheric.png', - value: - '${locationController.mainWeather.surfacePressure![locationController.hourOfDay.value].round()} ${'hPa'.tr}', - desc: 'pressure'.tr, - message: locationController - .mainWeather - .surfacePressure![ - locationController - .hourOfDay.value] - .round() < - 1000 - ? 'low'.tr - : locationController - .mainWeather - .surfacePressure![ - locationController - .hourOfDay.value] - .round() > - 1020 - ? 'high'.tr - : 'normal'.tr, - ), - DescWeather( - imageName: 'assets/images/water.png', - value: statusImFa.getPrecipitation( - locationController.mainWeather.rain![ - locationController.hourOfDay.value]), - desc: 'rain'.tr, - ), - ], - ), - const SizedBox(height: 5), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - DescWeather( - imageName: 'assets/images/cloudy.png', - value: - '${locationController.mainWeather.cloudcover![locationController.hourOfDay.value]}%', - desc: 'cloudcover'.tr, - ), - DescWeather( - imageName: 'assets/images/windgusts.png', - value: statusImFa.getSpeed(locationController - .mainWeather - .windgusts10M![ - locationController.hourOfDay.value] - .round()), - desc: 'windgusts'.tr, - ), - DescWeather( - imageName: 'assets/images/uv.png', - value: - '${locationController.mainWeather.uvIndex![locationController.hourOfDay.value].round()}', - desc: 'uvIndex'.tr, - message: locationController - .mainWeather - .uvIndex![locationController - .hourOfDay.value] - .round() < - 3 - ? 'uvLow'.tr - : locationController - .mainWeather - .uvIndex![locationController - .hourOfDay.value] - .round() < - 6 - ? 'uvAverage'.tr - : locationController - .mainWeather - .uvIndex![ - locationController - .hourOfDay.value] - .round() < - 8 - ? 'uvHigh'.tr - : locationController - .mainWeather - .uvIndex![ - locationController - .hourOfDay - .value] - .round() < - 11 - ? 'uvVeryHigh'.tr - : 'uvExtreme'.tr, - ), - ], - ), - ], - ), + ? DescContainer( + humidity: + locationController.mainWeather.relativehumidity2M![ + locationController.hourOfDay.value], + wind: locationController.mainWeather + .windspeed10M![locationController.hourOfDay.value], + visibility: locationController.mainWeather + .visibility![locationController.hourOfDay.value], + feels: + locationController.mainWeather.apparentTemperature![ + locationController.hourOfDay.value], + evaporation: + locationController.mainWeather.evapotranspiration![ + locationController.hourOfDay.value], + precipitation: locationController.mainWeather + .precipitation![locationController.hourOfDay.value], + direction: + locationController.mainWeather.winddirection10M![ + locationController.hourOfDay.value], + pressure: + locationController.mainWeather.surfacePressure![ + locationController.hourOfDay.value], + rain: locationController.mainWeather + .rain![locationController.hourOfDay.value], + cloudcover: locationController.mainWeather + .cloudcover![locationController.hourOfDay.value], + windgusts: locationController.mainWeather + .windgusts10M![locationController.hourOfDay.value], + uvIndex: locationController.mainWeather + .uvIndex![locationController.hourOfDay.value], ) : const MyShimmer( hight: 400, diff --git a/lib/app/modules/weather_card.dart b/lib/app/modules/weather_card.dart index 53c2bfc..f9addee 100644 --- a/lib/app/modules/weather_card.dart +++ b/lib/app/modules/weather_card.dart @@ -3,8 +3,7 @@ import 'package:get/get.dart'; import 'package:iconsax/iconsax.dart'; import 'package:rain/app/controller/controller.dart'; import 'package:rain/app/data/weather.dart'; -import 'package:rain/app/widgets/desc.dart'; -import 'package:rain/app/widgets/status_im_fa.dart'; +import 'package:rain/app/widgets/desc_container.dart'; import 'package:rain/app/widgets/sunset_sunrise.dart'; import 'package:rain/app/widgets/weather_daily.dart'; import 'package:rain/app/widgets/weather_now.dart'; @@ -23,12 +22,10 @@ class WeatherCardPage extends StatefulWidget { } class _WeatherCardPageState extends State { - final locale = Get.locale; - final statusImFa = StatusImFa(); - final locationController = Get.put(LocationController()); - final ItemScrollController itemScrollController = ItemScrollController(); int timeNow = 0; int dayNow = 0; + final locationController = Get.put(LocationController()); + final ItemScrollController itemScrollController = ItemScrollController(); @override void initState() { @@ -159,143 +156,19 @@ class _WeatherCardPageState extends State { timeSunrise: widget.weatherCard.sunrise![dayNow], timeSunset: widget.weatherCard.sunset![dayNow], ), - Container( - margin: const EdgeInsets.only(bottom: 15), - padding: const EdgeInsets.only(top: 22, bottom: 5), - decoration: BoxDecoration( - color: context.theme.colorScheme.primaryContainer, - borderRadius: const BorderRadius.all( - Radius.circular(20), - ), - ), - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - DescWeather( - imageName: 'assets/images/humidity.png', - value: - '${widget.weatherCard.relativehumidity2M![timeNow]}%', - desc: 'humidity'.tr, - ), - DescWeather( - imageName: 'assets/images/wind.png', - value: statusImFa.getSpeed(widget - .weatherCard.windspeed10M![timeNow] - .round()), - desc: 'wind'.tr, - ), - DescWeather( - imageName: 'assets/images/fog.png', - value: statusImFa.getVisibility( - widget.weatherCard.visibility![timeNow]), - desc: 'visibility'.tr, - ), - ], - ), - const SizedBox(height: 5), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - DescWeather( - imageName: 'assets/images/temperature.png', - value: - '${widget.weatherCard.apparentTemperature![timeNow].round()}°', - desc: 'feels'.tr, - ), - DescWeather( - imageName: 'assets/images/evaporation.png', - value: statusImFa.getPrecipitation(widget - .weatherCard.evapotranspiration![timeNow] - .abs()), - desc: 'evaporation'.tr, - ), - DescWeather( - imageName: 'assets/images/rainfall.png', - value: statusImFa.getPrecipitation( - widget.weatherCard.precipitation![timeNow]), - desc: 'precipitation'.tr, - ), - ], - ), - const SizedBox(height: 5), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - DescWeather( - imageName: 'assets/images/windsock.png', - value: - '${widget.weatherCard.winddirection10M![timeNow]}°', - desc: 'direction'.tr, - ), - DescWeather( - imageName: 'assets/images/atmospheric.png', - value: - '${widget.weatherCard.surfacePressure![timeNow].round()} ${'hPa'.tr}', - desc: 'pressure'.tr, - message: widget - .weatherCard.surfacePressure![timeNow] - .round() < - 1000 - ? 'low'.tr - : widget.weatherCard.surfacePressure![timeNow] - .round() > - 1020 - ? 'high'.tr - : 'normal'.tr, - ), - DescWeather( - imageName: 'assets/images/water.png', - value: statusImFa.getPrecipitation( - widget.weatherCard.rain![timeNow]), - desc: 'rain'.tr, - ), - ], - ), - const SizedBox(height: 5), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - DescWeather( - imageName: 'assets/images/cloudy.png', - value: - '${widget.weatherCard.cloudcover![timeNow]}%', - desc: 'cloudcover'.tr, - ), - DescWeather( - imageName: 'assets/images/windgusts.png', - value: statusImFa.getSpeed(widget - .weatherCard.windgusts10M![timeNow] - .round()), - desc: 'windgusts'.tr, - ), - DescWeather( - imageName: 'assets/images/uv.png', - value: - '${widget.weatherCard.uvIndex![timeNow].round()}', - desc: 'uvIndex'.tr, - message: widget.weatherCard.uvIndex![timeNow] - .round() < - 3 - ? 'uvLow'.tr - : widget.weatherCard.uvIndex![timeNow].round() < - 6 - ? 'uvAverage'.tr - : widget.weatherCard.uvIndex![timeNow] - .round() < - 8 - ? 'uvHigh'.tr - : widget.weatherCard.uvIndex![timeNow] - .round() < - 11 - ? 'uvVeryHigh'.tr - : 'uvExtreme'.tr, - ), - ], - ), - ], - ), + DescContainer( + humidity: widget.weatherCard.relativehumidity2M![timeNow], + wind: widget.weatherCard.windspeed10M![timeNow], + visibility: widget.weatherCard.visibility![timeNow], + feels: widget.weatherCard.apparentTemperature![timeNow], + evaporation: widget.weatherCard.evapotranspiration![timeNow], + precipitation: widget.weatherCard.precipitation![timeNow], + direction: widget.weatherCard.winddirection10M![timeNow], + pressure: widget.weatherCard.surfacePressure![timeNow], + rain: widget.weatherCard.rain![timeNow], + cloudcover: widget.weatherCard.cloudcover![timeNow], + windgusts: widget.weatherCard.windgusts10M![timeNow], + uvIndex: widget.weatherCard.uvIndex![timeNow], ), WeatherDaily( date: widget.weatherCard.timeDaily!, diff --git a/lib/app/widgets/desc_container.dart b/lib/app/widgets/desc_container.dart new file mode 100644 index 0000000..74ceb89 --- /dev/null +++ b/lib/app/widgets/desc_container.dart @@ -0,0 +1,141 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:rain/app/widgets/desc.dart'; +import 'package:rain/app/widgets/message.dart'; +import 'package:rain/app/widgets/status_im_fa.dart'; + +class DescContainer extends StatelessWidget { + const DescContainer({ + super.key, + required this.humidity, + required this.wind, + required this.visibility, + required this.feels, + required this.evaporation, + required this.precipitation, + required this.direction, + required this.pressure, + required this.rain, + required this.cloudcover, + required this.windgusts, + required this.uvIndex, + }); + final int humidity; + final double wind; + final double visibility; + final double feels; + final double evaporation; + final double precipitation; + final int direction; + final double pressure; + final double rain; + final int cloudcover; + final double windgusts; + final double uvIndex; + + @override + Widget build(BuildContext context) { + final statusImFa = StatusImFa(); + final message = Message(); + return Container( + margin: const EdgeInsets.only(bottom: 15), + padding: const EdgeInsets.only(top: 22, bottom: 5), + decoration: BoxDecoration( + color: context.theme.colorScheme.primaryContainer, + borderRadius: const BorderRadius.all( + Radius.circular(20), + ), + ), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + DescWeather( + imageName: 'assets/images/humidity.png', + value: '$humidity%', + desc: 'humidity'.tr, + ), + DescWeather( + imageName: 'assets/images/temperature.png', + value: '${feels.round()}°', + desc: 'feels'.tr, + ), + DescWeather( + imageName: 'assets/images/fog.png', + value: statusImFa.getVisibility(visibility), + desc: 'visibility'.tr, + ), + ], + ), + const SizedBox(height: 5), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + DescWeather( + imageName: 'assets/images/windsock.png', + value: '$direction°', + desc: 'direction'.tr, + message: message.getDirection(direction), + ), + DescWeather( + imageName: 'assets/images/wind.png', + value: statusImFa.getSpeed(wind.round()), + desc: 'wind'.tr, + ), + DescWeather( + imageName: 'assets/images/windgusts.png', + value: statusImFa.getSpeed(windgusts.round()), + desc: 'windgusts'.tr, + ), + ], + ), + const SizedBox(height: 5), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + DescWeather( + imageName: 'assets/images/evaporation.png', + value: statusImFa.getPrecipitation(evaporation.abs()), + desc: 'evaporation'.tr, + ), + DescWeather( + imageName: 'assets/images/rainfall.png', + value: statusImFa.getPrecipitation(precipitation), + desc: 'precipitation'.tr, + ), + DescWeather( + imageName: 'assets/images/water.png', + value: statusImFa.getPrecipitation(rain), + desc: 'rain'.tr, + ), + ], + ), + const SizedBox(height: 5), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + DescWeather( + imageName: 'assets/images/cloudy.png', + value: '$cloudcover%', + desc: 'cloudcover'.tr, + ), + DescWeather( + imageName: 'assets/images/atmospheric.png', + value: '${pressure.round()} ${'hPa'.tr}', + desc: 'pressure'.tr, + message: message.getPressure(pressure.round()), + ), + DescWeather( + imageName: 'assets/images/uv.png', + value: '${uvIndex.round()}', + desc: 'uvIndex'.tr, + message: message.getUvIndex(uvIndex.round()), + ), + ], + ), + ], + ), + ); + } +} diff --git a/lib/app/widgets/message.dart b/lib/app/widgets/message.dart new file mode 100644 index 0000000..59bcdaf --- /dev/null +++ b/lib/app/widgets/message.dart @@ -0,0 +1,47 @@ +import 'package:get/get.dart'; + +class Message { + String getPressure(int pressure) { + if (pressure < 1000) { + return 'low'.tr; + } else if (pressure > 1020) { + return 'high'.tr; + } else { + return 'normal'.tr; + } + } + + String getUvIndex(int uvIndex) { + if (uvIndex < 3) { + return 'uvLow'.tr; + } else if (uvIndex < 6) { + return 'uvAverage'.tr; + } else if (uvIndex < 8) { + return 'uvHigh'.tr; + } else if (uvIndex < 11) { + return 'uvVeryHigh'.tr; + } else { + return 'uvExtreme'.tr; + } + } + + String getDirection(int direction) { + if (direction >= 337.5 || direction < 22.5) { + return 'north'.tr; + } else if (direction >= 22.5 && direction < 67.5) { + return 'northeast'.tr; + } else if (direction >= 67.5 && direction < 112.5) { + return 'east'.tr; + } else if (direction >= 112.5 && direction < 157.5) { + return 'southeast'.tr; + } else if (direction >= 157.5 && direction < 202.5) { + return 'south'.tr; + } else if (direction >= 202.5 && direction < 247.5) { + return 'southwest'.tr; + } else if (direction >= 247.5 && direction < 292.5) { + return 'west'.tr; + } else { + return 'northwest'.tr; + } + } +} diff --git a/lib/app/widgets/setting_links.dart b/lib/app/widgets/setting_links.dart index 542e0bc..9c05bbe 100644 --- a/lib/app/widgets/setting_links.dart +++ b/lib/app/widgets/setting_links.dart @@ -9,17 +9,21 @@ class SettingLinks extends StatelessWidget { required this.text, required this.switcher, required this.dropdown, + required this.info, this.dropdownName, this.dropdownList, this.dropdownCange, this.value, this.onPressed, this.onChange, + this.textInfo, }); - final Icon icon; + final Widget icon; final String text; final bool switcher; final bool dropdown; + final bool info; + final String? textInfo; final String? dropdownName; final List? dropdownList; final Function(String?)? dropdownCange; @@ -77,10 +81,20 @@ class SettingLinks extends StatelessWidget { }).toList(), onChanged: dropdownCange, ) - : Icon( - Iconsax.arrow_right_3, - color: context.theme.iconTheme.color, - ), + : info + ? Padding( + padding: const EdgeInsets.only(right: 5), + child: Text( + textInfo!, + style: context.theme.textTheme.titleMedium, + overflow: TextOverflow.visible, + ), + ) + : Icon( + Iconsax.arrow_right_3, + color: context.theme.iconTheme.color, + size: 18, + ), ], ), ), diff --git a/lib/theme/theme.dart b/lib/theme/theme.dart index a179f66..80257b7 100644 --- a/lib/theme/theme.dart +++ b/lib/theme/theme.dart @@ -45,12 +45,40 @@ class RainTheme { color: Colors.white, ), snackBarTheme: const SnackBarThemeData( - backgroundColor: Color.fromARGB(255, 55, 55, 55)), + backgroundColor: Color.fromARGB(255, 55, 55, 55), + ), scaffoldBackgroundColor: Colors.black, - bottomNavigationBarTheme: baseLigth.bottomNavigationBarTheme - .copyWith(backgroundColor: const Color.fromARGB(255, 10, 10, 10)), + bottomNavigationBarTheme: baseLigth.bottomNavigationBarTheme.copyWith( + backgroundColor: const Color.fromARGB(255, 10, 10, 10), + ), unselectedWidgetColor: const Color.fromARGB(255, 20, 20, 20), dividerColor: Colors.white, ); } + + static ThemeData get greyTheme { + return baseDark.copyWith( + brightness: Brightness.dark, + useMaterial3: true, + colorScheme: ColorScheme.fromSeed( + seedColor: Colors.blue, + brightness: Brightness.dark, + primaryContainer: const Color.fromARGB(255, 40, 40, 40), + secondaryContainer: const Color.fromARGB(255, 25, 25, 25), + tertiaryContainer: const Color.fromARGB(255, 45, 45, 45), + ), + iconTheme: baseLigth.iconTheme.copyWith( + color: Colors.white, + ), + snackBarTheme: const SnackBarThemeData( + backgroundColor: Color.fromARGB(255, 55, 55, 55), + ), + scaffoldBackgroundColor: const Color.fromARGB(255, 30, 30, 30), + bottomNavigationBarTheme: baseLigth.bottomNavigationBarTheme.copyWith( + backgroundColor: const Color.fromARGB(255, 28, 28, 28), + ), + unselectedWidgetColor: Colors.grey[850], + dividerColor: Colors.white, + ); + } } diff --git a/lib/theme/theme_controller.dart b/lib/theme/theme_controller.dart index 1df240a..4613be2 100644 --- a/lib/theme/theme_controller.dart +++ b/lib/theme/theme_controller.dart @@ -10,6 +10,13 @@ class ThemeController extends GetxController { ? ThemeMode.dark : ThemeMode.light; + void changeThemeDark(bool isDarkTheme) { + isar.writeTxn(() async { + settings.oledScreens = isDarkTheme; + isar.settings.put(settings); + }); + } + void saveTheme(bool isDarkMode) async { settings.theme = isDarkMode; isar.writeTxn(() async => isar.settings.put(settings)); diff --git a/lib/translation/translation.dart b/lib/translation/translation.dart index 106decc..3d99543 100644 --- a/lib/translation/translation.dart +++ b/lib/translation/translation.dart @@ -44,18 +44,12 @@ class Translation extends Translations { 'location': 'Местоположение', 'no_location': 'Включите службу определения местоположения для получения метеорологических данных для текущего местоположения.', - 'about': 'О нас', - 'aboutDesc': - 'Это проект с открытым исходным кодом.\nЕсли вам понравилась наша работа поставьте несколько 🌟 и ❤ на репозитории.', - 'author': 'Сделано с ❤ от', 'theme': 'Тёмная тема', 'low': 'Низкое', 'high': 'Высокое', 'normal': 'Нормальное', 'lat': 'Широта', 'lon': 'Долгота', - 'notFound': 'Ничего не найдено', - 'enter_name': 'Введите название', 'create': 'Создание', 'city': 'Город', 'district': 'Район', @@ -92,6 +86,17 @@ class Translation extends Translations { 'uvExtreme': 'Экстремальный', 'weatherMore': 'Прогноз погоды на 16 дней', 'windgusts': 'Шквал', + 'oledScreens': 'OLED-дисплей', + 'north': 'Север', + 'northeast': 'Северо-восток', + 'east': 'Восток', + 'southeast': 'Юго-восток', + 'south': 'Юг', + 'southwest': 'Юго-запад', + 'west': 'Запад', + 'northwest': 'Северо-запад', + 'project': 'Проект на', + 'version': 'Версия приложения', }, 'en_US': { 'start': 'Get Started', @@ -133,18 +138,12 @@ class Translation extends Translations { 'location': 'Location', 'no_location': 'Enable the location service to get weather data for the current location.', - 'about': 'About us', - 'aboutDesc': - 'This is an open source project.\nif you liked our work, put a few 🌟 and ❤ on the repositories.', - 'author': 'Made with ❤ from', 'theme': 'Dark theme', 'low': 'Low', 'high': 'High', 'normal': 'Normal', 'lat': 'Latitude', 'lon': 'Longitude', - 'notFound': 'Nothing found', - 'enter_name': 'Enter name', 'create': 'Create', 'city': 'City', 'district': 'District', @@ -182,6 +181,17 @@ class Translation extends Translations { 'uvExtreme': 'Extreme', 'weatherMore': '16-day weather forecast', 'windgusts': 'Gust', + 'oledScreens': 'OLED-display', + 'north': 'North', + 'northeast': 'Northeast', + 'east': 'East', + 'southeast': 'Southeast', + 'south': 'South', + 'southwest': 'Southwest', + 'west': 'West', + 'northwest': 'Northwest', + 'project': 'Project on', + 'version': 'Application version', }, 'fr_FR': { 'start': 'Démarrer', @@ -224,18 +234,12 @@ class Translation extends Translations { 'location': 'Localisation', 'no_location': 'Activez le service de localisation pour obtenir les données météorologiques de l\'endroit actuel.', - 'about': 'A propos de nous', - 'aboutDesc': - 'C\'est un projet open source.\nSi vous aimez notre travail, mettez quelques 🌟 et ❤ sur le dépôt.', - 'author': 'Fait avec ❤ par', 'theme': 'Theme sombre', 'low': 'Bas', 'high': 'Haut', 'normal': 'Normal', 'lat': 'Latitude', 'lon': 'Longitude', - 'notFound': 'Rien trouvé', - 'enter_name': 'Entrez un nom', 'create': 'Créer', 'city': 'Ville', 'district': 'District', @@ -273,6 +277,17 @@ class Translation extends Translations { 'uvExtreme': 'Extrême', 'weatherMore': 'Prévisions météo pour 16 jours', 'windgusts': 'Rafale', + 'oledScreens': 'Écran OLED', + 'north': 'Nord', + 'northeast': 'Nord-Est', + 'east': 'Est', + 'southeast': 'Sud-Est', + 'south': 'Sud', + 'southwest': 'Sud-Ouest', + 'west': 'Ouest', + 'northwest': 'Nord-Ouest', + 'project': 'Project on', + 'version': 'Application version', }, 'it_IT': { 'start': 'Clicca per iniziare', @@ -315,18 +330,12 @@ class Translation extends Translations { 'location': 'Posizione', 'no_location': 'Abilita il servizio di localizzazione per ottenere i dati meteo per la posizione corrente.', - 'about': 'Chi siamo', - 'aboutDesc': - 'Questo è un progetto open source.\nSe ti è piaciuto il nostro lavoro, metti delle 🌟 e ❤ sui repository.', - 'author': 'Fatto con il ❤ da', 'theme': 'Tema scuro', 'low': 'Basso', 'high': 'Alto', 'normal': 'Normale', 'lat': 'Latitudine', 'lon': 'Longitudine', - 'notFound': 'Non trovato', - 'enter_name': 'Inserisci un nome', 'create': 'Creare', 'city': 'Città', 'district': 'Regione', @@ -364,6 +373,17 @@ class Translation extends Translations { 'uvExtreme': 'Estremo', 'weatherMore': 'Previsioni del tempo per 16 giorni', 'windgusts': 'Raffica', + 'oledScreens': 'Schermo OLED', + 'north': 'Nord', + 'northeast': 'Nord-est', + 'east': 'Est', + 'southeast': 'Sud-est', + 'south': 'Sud', + 'southwest': 'Sud-ovest', + 'west': 'Ovest', + 'northwest': 'Nord-ovest', + 'project': 'Progetto su', + 'version': 'Versione dell\'applicazione', }, 'de_DE': { 'start': 'Los gehts', @@ -406,18 +426,12 @@ class Translation extends Translations { 'location': 'Standort', 'no_location': 'Aktiviere den Standortdienst, um Wetterdaten für den aktuellen Standort zu erhalten.', - 'about': 'Über uns', - 'aboutDesc': - 'Dies ist ein Open-Source-Projekt.\nWenn Ihnen unsere Arbeit gefallen hat, geben Sie den Repositories bitte ein paar 🌟 und ❤.', - 'author': 'Mit ❤ gemacht von', 'theme': 'Dunkles Design', 'low': 'Niedrig', 'high': 'Hoch', 'normal': 'Normal', 'lat': 'Breitengrad', 'lon': 'Längengrad', - 'notFound': 'Nichts gefunden', - 'enter_name': 'Geben Sie einen Namen ein', 'create': 'Erstellen', 'city': 'Stadt', 'district': 'Bezirk', @@ -455,6 +469,17 @@ class Translation extends Translations { 'uvExtreme': 'Extrem', 'weatherMore': '16-Tage-Wettervorhersage', 'windgusts': 'Böe', + 'oledScreens': 'OLED-Bildschirm', + 'north': 'Norden', + 'northeast': 'Nordosten', + 'east': 'Osten', + 'southeast': 'Südosten', + 'south': 'Süden', + 'southwest': 'Südwesten', + 'west': 'Westen', + 'northwest': 'Nordwesten', + 'project': 'Projekt auf', + 'version': 'Anwendungsversion', }, 'tr_TR': { 'start': 'Başlat', @@ -496,18 +521,12 @@ class Translation extends Translations { 'location': 'Konum', 'no_location': 'Mevcut konumun hava durumu verilerini almak için konum servisini açın.', - 'about': 'Hakkımızda', - 'aboutDesc': - 'Bu, açık kaynak kodlu bir proje.\nÇalışmamızı beğendiyseniz, lütfen depolarda birkaç 🌟 ve ❤ ekleyin.', - 'author': 'Ile yapıldı ❤', 'theme': 'Karanlık tema', 'low': 'Düşük', 'high': 'Yüksek', 'normal': 'Normal', 'lat': 'Enlem', 'lon': 'Boylam', - 'notFound': 'Bulunamadı', - 'enter_name': 'İsim girin', 'create': 'Oluştur', 'city': 'Şehir', 'district': 'İlçe', @@ -545,6 +564,17 @@ class Translation extends Translations { 'uvExtreme': 'Aşırı', 'weatherMore': '16 günlük hava tahmini', 'windgusts': 'Bir telaş', + 'oledScreens': 'OLED Ekran', + 'north': 'Kuzey', + 'northeast': 'Kuzeydoğu', + 'east': 'Doğu', + 'southeast': 'Güneydoğu', + 'south': 'Güney', + 'southwest': 'Güneybatı', + 'west': 'Batı', + 'northwest': 'Kuzeybatı', + 'project': 'Proje üzerinde', + 'version': 'Uygulama sürümü', }, 'pt_BR': { 'start': 'Iniciar', @@ -586,18 +616,12 @@ class Translation extends Translations { 'location': 'Localização', 'no_location': 'Habilite a localização para obter dados de clima do local atual.', - 'about': 'Sobre', - 'aboutDesc': - 'Esse é um projeto de código aberto.\nif se você gosta do nosso trabalho, avalie com 🌟 e ❤ os repositórios.', - 'author': 'Feito com ❤ de DARK NIGHT', 'theme': 'Tema escuro', 'low': 'Baixo', 'high': 'Alto', 'normal': 'Normal', 'lat': 'Latitude', 'lon': 'Longitude', - 'notFound': 'Não encontrado', - 'enter_name': 'Escreva um nome', 'create': 'Criar', 'city': 'Cidade', 'district': 'Distrito', @@ -635,6 +659,17 @@ class Translation extends Translations { 'uvExtreme': 'Extremo', 'weatherMore': 'Previsão do tempo para 16 dias', 'windgusts': 'Rajadas', + 'oledScreens': 'Tela OLED', + 'north': 'Norte', + 'northeast': 'Nordeste', + 'east': 'Leste', + 'southeast': 'Sudeste', + 'south': 'Sul', + 'southwest': 'Sudoeste', + 'west': 'Oeste', + 'northwest': 'Noroeste', + 'project': 'Projeto em', + 'version': 'Versão do aplicativo', }, 'es_ES': { 'start': 'Empezar', @@ -677,18 +712,12 @@ class Translation extends Translations { 'location': 'Ubicación', 'no_location': 'Activa la localización para obtener información meteorológica para tu ubicación actual.', - 'about': 'Sobre nosotros', - 'aboutDesc': - 'Este proyecto es de código abierto.\nsi te gusta nuestro trabajo, danos unas 🌟 y ❤ en nuestros repositorios.', - 'author': 'Hecho con ❤ desde', 'theme': 'Tema oscuro', 'low': 'Bajo', 'high': 'Alto', 'normal': 'Normal', 'lat': 'Latitud', 'lon': 'Longitud', - 'notFound': 'No se ha encontrado nada', - 'enter_name': 'Escribe un nombre', 'create': 'Crear', 'city': 'Ciudad', 'district': 'Distrito', @@ -725,7 +754,18 @@ class Translation extends Translations { 'uvVeryHigh': 'Muy alto', 'uvExtreme': 'Extremo', 'weatherMore': 'Pronóstico del tiempo para 16 días', - 'windgusts': 'Ráfagas' + 'windgusts': 'Ráfagas', + 'oledScreens': 'Pantalla OLED', + 'north': 'Norte', + 'northeast': 'Noreste', + 'east': 'Este', + 'southeast': 'Sureste', + 'south': 'Sur', + 'southwest': 'Suroeste', + 'west': 'Oeste', + 'northwest': 'Noroeste', + 'project': 'Proyecto en', + 'version': 'Versión de la aplicación', }, 'sk_SK': { 'start': 'Začať', @@ -768,18 +808,12 @@ class Translation extends Translations { 'location': 'Poloha', 'no_location': 'Ak chcete získať údaje o počasí pre aktuálnu polohu, povoľte službu určovania polohy.', - 'about': 'O nás', - 'aboutDesc': - 'Toto je open source projekt.\nAk sa vám naša práca páčila, vložte 🌟 a ❤ na repozitáre.', - 'author': 'Vytvorené z ❤ od', 'theme': 'Tmavý režim', 'low': 'Nízky', 'high': 'Vysoký', 'normal': 'Normálny', 'lat': 'Zemepisná šírka', 'lon': 'Zemepisná dĺžka', - 'notFound': 'Nič nebolo nájdené', - 'enter_name': 'Zadajte názov', 'create': 'Vytvoriť', 'city': 'Miesto', 'district': 'Okres', @@ -815,7 +849,18 @@ class Translation extends Translations { 'uvVeryHigh': 'Veľmi vysoký', 'uvExtreme': 'Extrémny', 'weatherMore': 'Predpoveď počasia na 16 dní', - 'windgusts': 'Squall' + 'windgusts': 'Squall', + 'oledScreens': 'OLED Displej', + 'north': 'Sever', + 'northeast': 'Severo-Východ', + 'east': 'Východ', + 'southeast': 'Juhovýchod', + 'south': 'Juž', + 'southwest': 'Juhozápad', + 'west': 'Západ', + 'northwest': 'Severo-Západ', + 'project': 'Projekt na', + 'version': 'Verzia aplikácie', }, 'nl_NL': { 'start': 'Beginnen', @@ -858,18 +903,12 @@ class Translation extends Translations { 'location': 'Locatie', 'no_location': 'Schakel de locatiedienst in om weer gegevens voor de huidige locatie te ontvangen.', - 'about': 'Over ons', - 'aboutDesc': - 'Dit is een open source project.\nAls je van ons werk houdt, plaats een paar 🌟 and ❤ op de repositories.', - 'author': 'Gemaakt met ❤ door', 'theme': 'Donker thema', 'low': 'Laag', 'high': 'Hoog', 'normal': 'Normaal', 'lat': 'Breedtegraad', 'lon': 'Lengtegraad', - 'notFound': 'Niks gevonden', - 'enter_name': 'Vul naam in', 'create': 'Creëer', 'city': 'Stad', 'district': 'District', @@ -906,7 +945,18 @@ class Translation extends Translations { 'uvVeryHigh': 'Erg hoog', 'uvExtreme': 'Extreem', 'weatherMore': '16-daagse weersverwachting', - 'windgusts': 'Windstoten' + 'windgusts': 'Windstoten', + 'oledScreens': 'OLED-scherm', + 'north': 'Noord', + 'northeast': 'Noordoost', + 'east': 'Oost', + 'southeast': 'Zuidoost', + 'south': 'Zuid', + 'southwest': 'Zuidwest', + 'west': 'West', + 'northwest': 'Noordwest', + 'project': 'Project op', + 'version': 'Applicatieversie', }, }; } diff --git a/pubspec.lock b/pubspec.lock index 74eeec8..781dd5b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -290,10 +290,10 @@ packages: dependency: "direct main" description: name: flutter_displaymode - sha256: "136b0314fdc78fe995b0b75061fe9ff8210dffca84f8f8110f8f71029479db3b" + sha256: "42c5e9abd13d28ed74f701b60529d7f8416947e58256e6659c5550db719c57ef" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.6.0" flutter_glow: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 502ee80..44f58fd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -29,7 +29,7 @@ dependencies: package_info_plus: ^3.1.0 connectivity_plus: ^3.0.4 isar_flutter_libs: ^3.1.0 - flutter_displaymode: ^0.5.0 + flutter_displaymode: ^0.6.0 lat_lng_to_timezone: ^0.2.0 custom_navigation_bar: ^0.8.2 scrollable_positioned_list: ^0.3.5 From e1011080aad4de6cff251f94e641c0539f6a0250 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Mon, 24 Apr 2023 23:45:19 +0300 Subject: [PATCH 009/246] fix --- lib/app/api/api.dart | 4 +- lib/app/data/weather.dart | 1 - lib/app/data/weather.g.dart | 75 ++++-------------------------- lib/app/modules/settings.dart | 15 ------ lib/app/modules/weather.dart | 7 +++ lib/app/modules/weather_card.dart | 7 +++ lib/app/widgets/daily_card.dart | 10 ++++ lib/app/widgets/weather_daily.dart | 5 +- lib/app/widgets/weather_more.dart | 3 +- lib/theme/theme_controller.dart | 7 --- lib/translation/translation.dart | 30 ++++-------- 11 files changed, 52 insertions(+), 112 deletions(-) create mode 100644 lib/app/widgets/daily_card.dart diff --git a/lib/app/api/api.dart b/lib/app/api/api.dart index 18cd26e..4a7a7e1 100644 --- a/lib/app/api/api.dart +++ b/lib/app/api/api.dart @@ -27,7 +27,7 @@ class WeatherAPI { : urlHourly = baseUrlHourly; String baseUrlDaily = - 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,windspeed_10m_max,windgusts_10m_max&forecast_days=16&timezone=auto'; + 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,windspeed_10m_max,windgusts_10m_max&forecast_days=10&timezone=auto'; String urlDaily; settings.degrees == 'fahrenheit' ? urlDaily = '$baseUrlDaily&temperature_unit=fahrenheit' @@ -119,7 +119,7 @@ class WeatherAPI { : urlHourly = baseUrlHourly; String baseUrlDaily = - 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,windspeed_10m_max,windgusts_10m_max&forecast_days=16&timezone=auto'; + 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,windspeed_10m_max,windgusts_10m_max&forecast_days=10&timezone=auto'; String urlDaily; settings.degrees == 'fahrenheit' ? urlDaily = '$baseUrlDaily&temperature_unit=fahrenheit' diff --git a/lib/app/data/weather.dart b/lib/app/data/weather.dart index 174837c..4a57cf3 100644 --- a/lib/app/data/weather.dart +++ b/lib/app/data/weather.dart @@ -10,7 +10,6 @@ class Settings { bool location = false; bool notifications = false; bool materialColor = false; - bool oledScreens = false; String measurements = 'metric'; String degrees = 'celsius'; String timeformat = '24'; diff --git a/lib/app/data/weather.g.dart b/lib/app/data/weather.g.dart index 9ed60ee..2203315 100644 --- a/lib/app/data/weather.g.dart +++ b/lib/app/data/weather.g.dart @@ -42,23 +42,18 @@ const SettingsSchema = CollectionSchema( name: r'notifications', type: IsarType.bool, ), - r'oledScreens': PropertySchema( - id: 5, - name: r'oledScreens', - type: IsarType.bool, - ), r'onboard': PropertySchema( - id: 6, + id: 5, name: r'onboard', type: IsarType.bool, ), r'theme': PropertySchema( - id: 7, + id: 6, name: r'theme', type: IsarType.bool, ), r'timeformat': PropertySchema( - id: 8, + id: 7, name: r'timeformat', type: IsarType.string, ) @@ -100,10 +95,9 @@ void _settingsSerialize( writer.writeBool(offsets[2], object.materialColor); writer.writeString(offsets[3], object.measurements); writer.writeBool(offsets[4], object.notifications); - writer.writeBool(offsets[5], object.oledScreens); - writer.writeBool(offsets[6], object.onboard); - writer.writeBool(offsets[7], object.theme); - writer.writeString(offsets[8], object.timeformat); + writer.writeBool(offsets[5], object.onboard); + writer.writeBool(offsets[6], object.theme); + writer.writeString(offsets[7], object.timeformat); } Settings _settingsDeserialize( @@ -119,10 +113,9 @@ Settings _settingsDeserialize( object.materialColor = reader.readBool(offsets[2]); object.measurements = reader.readString(offsets[3]); object.notifications = reader.readBool(offsets[4]); - object.oledScreens = reader.readBool(offsets[5]); - object.onboard = reader.readBool(offsets[6]); - object.theme = reader.readBoolOrNull(offsets[7]); - object.timeformat = reader.readString(offsets[8]); + object.onboard = reader.readBool(offsets[5]); + object.theme = reader.readBoolOrNull(offsets[6]); + object.timeformat = reader.readString(offsets[7]); return object; } @@ -146,10 +139,8 @@ P _settingsDeserializeProp

    ( case 5: return (reader.readBool(offset)) as P; case 6: - return (reader.readBool(offset)) as P; - case 7: return (reader.readBoolOrNull(offset)) as P; - case 8: + case 7: return (reader.readString(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); @@ -591,16 +582,6 @@ extension SettingsQueryFilter }); } - QueryBuilder oledScreensEqualTo( - bool value) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'oledScreens', - value: value, - )); - }); - } - QueryBuilder onboardEqualTo( bool value) { return QueryBuilder.apply(this, (query) { @@ -836,18 +817,6 @@ extension SettingsQuerySortBy on QueryBuilder { }); } - QueryBuilder sortByOledScreens() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'oledScreens', Sort.asc); - }); - } - - QueryBuilder sortByOledScreensDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'oledScreens', Sort.desc); - }); - } - QueryBuilder sortByOnboard() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'onboard', Sort.asc); @@ -959,18 +928,6 @@ extension SettingsQuerySortThenBy }); } - QueryBuilder thenByOledScreens() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'oledScreens', Sort.asc); - }); - } - - QueryBuilder thenByOledScreensDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'oledScreens', Sort.desc); - }); - } - QueryBuilder thenByOnboard() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'onboard', Sort.asc); @@ -1042,12 +999,6 @@ extension SettingsQueryWhereDistinct }); } - QueryBuilder distinctByOledScreens() { - return QueryBuilder.apply(this, (query) { - return query.addDistinctBy(r'oledScreens'); - }); - } - QueryBuilder distinctByOnboard() { return QueryBuilder.apply(this, (query) { return query.addDistinctBy(r'onboard'); @@ -1106,12 +1057,6 @@ extension SettingsQueryProperty }); } - QueryBuilder oledScreensProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'oledScreens'); - }); - } - QueryBuilder onboardProperty() { return QueryBuilder.apply(this, (query) { return query.addPropertyName(r'onboard'); diff --git a/lib/app/modules/settings.dart b/lib/app/modules/settings.dart index 7151987..4f44752 100644 --- a/lib/app/modules/settings.dart +++ b/lib/app/modules/settings.dart @@ -59,21 +59,6 @@ class _SettingsPageState extends State { ), // SettingLinks( // icon: Icon( - // Iconsax.mobile, - // color: context.theme.iconTheme.color, - // ), - // text: 'oledScreens'.tr, - // switcher: true, - // dropdown: false, - // info: false, - // value: settings.oledScreens, - // onChange: (value) { - // themeController.changeThemeDark(value); - // setState(() {}); - // }, - // ), - // SettingLinks( - // icon: Icon( // Iconsax.colorfilter, // color: context.theme.iconTheme.color, // ), diff --git a/lib/app/modules/weather.dart b/lib/app/modules/weather.dart index eda0411..8514c99 100644 --- a/lib/app/modules/weather.dart +++ b/lib/app/modules/weather.dart @@ -5,6 +5,7 @@ import 'package:rain/app/widgets/desc_container.dart'; import 'package:rain/app/widgets/shimmer.dart'; import 'package:rain/app/widgets/sunset_sunrise.dart'; import 'package:rain/app/widgets/weather_daily.dart'; +import 'package:rain/app/widgets/weather_more.dart'; import 'package:rain/app/widgets/weather_now.dart'; import 'package:rain/app/widgets/weather_hourly.dart'; import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; @@ -182,6 +183,12 @@ class _WeatherPageState extends State { locationController.mainWeather.temperature2MMin!, maxDegree: locationController.mainWeather.temperature2MMax!, + onTap: () => Get.to( + () => WeatherMore( + mainWeatherCache: locationController.mainWeather, + ), + transition: Transition.downToUp, + ), ) : const MyShimmer( hight: 450, diff --git a/lib/app/modules/weather_card.dart b/lib/app/modules/weather_card.dart index f9addee..3ca3e57 100644 --- a/lib/app/modules/weather_card.dart +++ b/lib/app/modules/weather_card.dart @@ -6,6 +6,7 @@ import 'package:rain/app/data/weather.dart'; import 'package:rain/app/widgets/desc_container.dart'; import 'package:rain/app/widgets/sunset_sunrise.dart'; import 'package:rain/app/widgets/weather_daily.dart'; +import 'package:rain/app/widgets/weather_more.dart'; import 'package:rain/app/widgets/weather_now.dart'; import 'package:rain/app/widgets/weather_hourly.dart'; import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; @@ -175,6 +176,12 @@ class _WeatherCardPageState extends State { weather: widget.weatherCard.weathercodeDaily!, minDegree: widget.weatherCard.temperature2MMin!, maxDegree: widget.weatherCard.temperature2MMax!, + onTap: () => Get.to( + () => WeatherMore( + weatherCard: widget.weatherCard, + ), + transition: Transition.downToUp, + ), ), ], ), diff --git a/lib/app/widgets/daily_card.dart b/lib/app/widgets/daily_card.dart new file mode 100644 index 0000000..2b2f2f8 --- /dev/null +++ b/lib/app/widgets/daily_card.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; + +class DailyCard extends StatelessWidget { + const DailyCard({super.key}); + + @override + Widget build(BuildContext context) { + return Container(); + } +} diff --git a/lib/app/widgets/weather_daily.dart b/lib/app/widgets/weather_daily.dart index 9667f4f..3e80fc3 100644 --- a/lib/app/widgets/weather_daily.dart +++ b/lib/app/widgets/weather_daily.dart @@ -11,11 +11,13 @@ class WeatherDaily extends StatefulWidget { required this.weather, required this.minDegree, required this.maxDegree, + required this.onTap, }); final List date; final List weather; final List minDegree; final List maxDegree; + final Function() onTap; @override State createState() => _WeatherDailyState(); @@ -113,7 +115,7 @@ class _WeatherDailyState extends State { ), const Divider(), GestureDetector( - onTap: () {}, + onTap: widget.onTap, child: Padding( padding: const EdgeInsets.symmetric(vertical: 10), child: Text( @@ -121,6 +123,7 @@ class _WeatherDailyState extends State { style: context.theme.textTheme.titleLarge?.copyWith( fontSize: 16, ), + overflow: TextOverflow.ellipsis, ), ), ), diff --git a/lib/app/widgets/weather_more.dart b/lib/app/widgets/weather_more.dart index 63bb0dd..784d8ec 100644 --- a/lib/app/widgets/weather_more.dart +++ b/lib/app/widgets/weather_more.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:iconsax/iconsax.dart'; import 'package:rain/app/data/weather.dart'; +import 'package:rain/app/widgets/daily_card.dart'; class WeatherMore extends StatefulWidget { const WeatherMore({ @@ -46,7 +47,7 @@ class _WeatherMoreState extends State { itemCount: widget.mainWeatherCache?.timeDaily!.length ?? widget.weatherCard?.timeDaily!.length, itemBuilder: (context, index) { - return Container(); + return const DailyCard(); }, ), ); diff --git a/lib/theme/theme_controller.dart b/lib/theme/theme_controller.dart index 4613be2..1df240a 100644 --- a/lib/theme/theme_controller.dart +++ b/lib/theme/theme_controller.dart @@ -10,13 +10,6 @@ class ThemeController extends GetxController { ? ThemeMode.dark : ThemeMode.light; - void changeThemeDark(bool isDarkTheme) { - isar.writeTxn(() async { - settings.oledScreens = isDarkTheme; - isar.settings.put(settings); - }); - } - void saveTheme(bool isDarkMode) async { settings.theme = isDarkMode; isar.writeTxn(() async => isar.settings.put(settings)); diff --git a/lib/translation/translation.dart b/lib/translation/translation.dart index 3d99543..35e9f5d 100644 --- a/lib/translation/translation.dart +++ b/lib/translation/translation.dart @@ -84,9 +84,8 @@ class Translation extends Translations { 'uvHigh': 'Высокий', 'uvVeryHigh': 'Очень высокий', 'uvExtreme': 'Экстремальный', - 'weatherMore': 'Прогноз погоды на 16 дней', + 'weatherMore': 'Прогноз погоды на 10 дней', 'windgusts': 'Шквал', - 'oledScreens': 'OLED-дисплей', 'north': 'Север', 'northeast': 'Северо-восток', 'east': 'Восток', @@ -179,9 +178,8 @@ class Translation extends Translations { 'uvHigh': 'High', 'uvVeryHigh': 'Very high', 'uvExtreme': 'Extreme', - 'weatherMore': '16-day weather forecast', + 'weatherMore': '10-day weather forecast', 'windgusts': 'Gust', - 'oledScreens': 'OLED-display', 'north': 'North', 'northeast': 'Northeast', 'east': 'East', @@ -275,9 +273,8 @@ class Translation extends Translations { 'uvHigh': 'Élevé', 'uvVeryHigh': 'Très élevé', 'uvExtreme': 'Extrême', - 'weatherMore': 'Prévisions météo pour 16 jours', + 'weatherMore': 'Prévisions météo pour 10 jours', 'windgusts': 'Rafale', - 'oledScreens': 'Écran OLED', 'north': 'Nord', 'northeast': 'Nord-Est', 'east': 'Est', @@ -371,9 +368,8 @@ class Translation extends Translations { 'uvHigh': 'Alto', 'uvVeryHigh': 'Molto alto', 'uvExtreme': 'Estremo', - 'weatherMore': 'Previsioni del tempo per 16 giorni', + 'weatherMore': 'Previsioni del tempo per 10 giorni', 'windgusts': 'Raffica', - 'oledScreens': 'Schermo OLED', 'north': 'Nord', 'northeast': 'Nord-est', 'east': 'Est', @@ -467,9 +463,8 @@ class Translation extends Translations { 'uvHigh': 'Hoch', 'uvVeryHigh': 'Sehr hoch', 'uvExtreme': 'Extrem', - 'weatherMore': '16-Tage-Wettervorhersage', + 'weatherMore': '10-Tage-Wettervorhersage', 'windgusts': 'Böe', - 'oledScreens': 'OLED-Bildschirm', 'north': 'Norden', 'northeast': 'Nordosten', 'east': 'Osten', @@ -562,9 +557,8 @@ class Translation extends Translations { 'uvHigh': 'Yüksek', 'uvVeryHigh': 'Çok yüksek', 'uvExtreme': 'Aşırı', - 'weatherMore': '16 günlük hava tahmini', + 'weatherMore': '10 günlük hava tahmini', 'windgusts': 'Bir telaş', - 'oledScreens': 'OLED Ekran', 'north': 'Kuzey', 'northeast': 'Kuzeydoğu', 'east': 'Doğu', @@ -657,9 +651,8 @@ class Translation extends Translations { 'uvHigh': 'Alto', 'uvVeryHigh': 'Muito alto', 'uvExtreme': 'Extremo', - 'weatherMore': 'Previsão do tempo para 16 dias', + 'weatherMore': 'Previsão do tempo para 10 dias', 'windgusts': 'Rajadas', - 'oledScreens': 'Tela OLED', 'north': 'Norte', 'northeast': 'Nordeste', 'east': 'Leste', @@ -753,9 +746,8 @@ class Translation extends Translations { 'uvHigh': 'Alto', 'uvVeryHigh': 'Muy alto', 'uvExtreme': 'Extremo', - 'weatherMore': 'Pronóstico del tiempo para 16 días', + 'weatherMore': 'Pronóstico del tiempo para 10 días', 'windgusts': 'Ráfagas', - 'oledScreens': 'Pantalla OLED', 'north': 'Norte', 'northeast': 'Noreste', 'east': 'Este', @@ -848,9 +840,8 @@ class Translation extends Translations { 'uvHigh': 'Vysoký', 'uvVeryHigh': 'Veľmi vysoký', 'uvExtreme': 'Extrémny', - 'weatherMore': 'Predpoveď počasia na 16 dní', + 'weatherMore': 'Predpoveď počasia na 10 dní', 'windgusts': 'Squall', - 'oledScreens': 'OLED Displej', 'north': 'Sever', 'northeast': 'Severo-Východ', 'east': 'Východ', @@ -944,9 +935,8 @@ class Translation extends Translations { 'uvHigh': 'Hoog', 'uvVeryHigh': 'Erg hoog', 'uvExtreme': 'Extreem', - 'weatherMore': '16-daagse weersverwachting', + 'weatherMore': '10-daagse weersverwachting', 'windgusts': 'Windstoten', - 'oledScreens': 'OLED-scherm', 'north': 'Noord', 'northeast': 'Noordoost', 'east': 'Oost', From d707b0d71a6596c84b22211a479e6fa333930217 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Tue, 25 Apr 2023 13:58:21 +0300 Subject: [PATCH 010/246] more daily weather --- lib/app/api/api.dart | 8 +- lib/app/api/daily.dart | 4 + lib/app/controller/controller.dart | 4 + lib/app/data/weather.dart | 4 + lib/app/data/weather.g.dart | 712 ++++++++++++++++++++++------- lib/app/modules/weather.dart | 2 +- lib/app/widgets/daily_card.dart | 28 +- lib/app/widgets/weather_daily.dart | 2 +- lib/app/widgets/weather_more.dart | 32 +- pubspec.lock | 20 +- pubspec.yaml | 6 +- 11 files changed, 637 insertions(+), 185 deletions(-) diff --git a/lib/app/api/api.dart b/lib/app/api/api.dart index 4a7a7e1..83108c5 100644 --- a/lib/app/api/api.dart +++ b/lib/app/api/api.dart @@ -27,7 +27,7 @@ class WeatherAPI { : urlHourly = baseUrlHourly; String baseUrlDaily = - 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,windspeed_10m_max,windgusts_10m_max&forecast_days=10&timezone=auto'; + 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,precipitation_probability_max,windspeed_10m_max,windgusts_10m_max&forecast_days=10&timezone=auto'; String urlDaily; settings.degrees == 'fahrenheit' ? urlDaily = '$baseUrlDaily&temperature_unit=fahrenheit' @@ -64,6 +64,8 @@ class WeatherAPI { sunrise: weatherDataDaily.daily.sunrise, sunset: weatherDataDaily.daily.sunset, precipitationSum: weatherDataDaily.daily.precipitationSum, + precipitationProbabilityMax: + weatherDataDaily.daily.precipitationProbabilityMax, windspeed10MMax: weatherDataDaily.daily.windspeed10MMax, windgusts10MMax: weatherDataDaily.daily.windgusts10MMax, timezone: weatherDataHourly.timezone, @@ -119,7 +121,7 @@ class WeatherAPI { : urlHourly = baseUrlHourly; String baseUrlDaily = - 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,windspeed_10m_max,windgusts_10m_max&forecast_days=10&timezone=auto'; + 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,precipitation_probability_max,windspeed_10m_max,windgusts_10m_max&forecast_days=10&timezone=auto'; String urlDaily; settings.degrees == 'fahrenheit' ? urlDaily = '$baseUrlDaily&temperature_unit=fahrenheit' @@ -156,6 +158,8 @@ class WeatherAPI { sunrise: weatherDataDaily.daily.sunrise, sunset: weatherDataDaily.daily.sunset, precipitationSum: weatherDataDaily.daily.precipitationSum, + precipitationProbabilityMax: + weatherDataDaily.daily.precipitationProbabilityMax, windspeed10MMax: weatherDataDaily.daily.windspeed10MMax, windgusts10MMax: weatherDataDaily.daily.windgusts10MMax, lat: lat, diff --git a/lib/app/api/daily.dart b/lib/app/api/daily.dart index ac4c080..f6bd49f 100644 --- a/lib/app/api/daily.dart +++ b/lib/app/api/daily.dart @@ -22,6 +22,7 @@ class Daily { this.sunrise, this.sunset, this.precipitationSum, + this.precipitationProbabilityMax, this.windspeed10MMax, this.windgusts10MMax, }); @@ -35,6 +36,7 @@ class Daily { List? sunrise; List? sunset; List? precipitationSum; + List? precipitationProbabilityMax; List? windspeed10MMax; List? windgusts10MMax; @@ -53,6 +55,8 @@ class Daily { sunset: List.from(json["sunset"].map((x) => x)), precipitationSum: List.from(json["precipitation_sum"].map((x) => x)), + precipitationProbabilityMax: + List.from(json["precipitation_probability_max"].map((x) => x)), windspeed10MMax: List.from(json["windspeed_10m_max"].map((x) => x)), windgusts10MMax: diff --git a/lib/app/controller/controller.dart b/lib/app/controller/controller.dart index dce94b9..6094bf3 100644 --- a/lib/app/controller/controller.dart +++ b/lib/app/controller/controller.dart @@ -301,6 +301,8 @@ class LocationController extends GetxController { element.sunrise = _weatherCard.value.sunrise; element.sunset = _weatherCard.value.sunset; element.precipitationSum = _weatherCard.value.precipitationSum; + element.precipitationProbabilityMax = + _weatherCard.value.precipitationProbabilityMax; element.windspeed10MMax = _weatherCard.value.windspeed10MMax; element.windgusts10MMax = _weatherCard.value.windgusts10MMax; element.timestamp = DateTime.now(); @@ -344,6 +346,8 @@ class LocationController extends GetxController { weatherCard.sunrise = _weatherCard.value.sunrise; weatherCard.sunset = _weatherCard.value.sunset; weatherCard.precipitationSum = _weatherCard.value.precipitationSum; + weatherCard.precipitationProbabilityMax = + _weatherCard.value.precipitationProbabilityMax; weatherCard.windspeed10MMax = _weatherCard.value.windspeed10MMax; weatherCard.windgusts10MMax = _weatherCard.value.windgusts10MMax; weatherCard.timestamp = DateTime.now(); diff --git a/lib/app/data/weather.dart b/lib/app/data/weather.dart index 4a57cf3..acb68d3 100644 --- a/lib/app/data/weather.dart +++ b/lib/app/data/weather.dart @@ -42,6 +42,7 @@ class MainWeatherCache { List? sunrise; List? sunset; List? precipitationSum; + List? precipitationProbabilityMax; List? windspeed10MMax; List? windgusts10MMax; String? timezone; @@ -72,6 +73,7 @@ class MainWeatherCache { this.sunrise, this.sunset, this.precipitationSum, + this.precipitationProbabilityMax, this.windspeed10MMax, this.windgusts10MMax, this.timezone, @@ -122,6 +124,7 @@ class WeatherCard { List? sunrise; List? sunset; List? precipitationSum; + List? precipitationProbabilityMax; List? windspeed10MMax; List? windgusts10MMax; double? lat; @@ -156,6 +159,7 @@ class WeatherCard { this.sunrise, this.sunset, this.precipitationSum, + this.precipitationProbabilityMax, this.windspeed10MMax, this.windgusts10MMax, this.lat, diff --git a/lib/app/data/weather.g.dart b/lib/app/data/weather.g.dart index 2203315..d71b28b 100644 --- a/lib/app/data/weather.g.dart +++ b/lib/app/data/weather.g.dart @@ -69,7 +69,7 @@ const SettingsSchema = CollectionSchema( getId: _settingsGetId, getLinks: _settingsGetLinks, attach: _settingsAttach, - version: '3.1.0', + version: '3.1.0+1', ); int _settingsEstimateSize( @@ -1117,113 +1117,118 @@ const MainWeatherCacheSchema = CollectionSchema( name: r'precipitation', type: IsarType.doubleList, ), - r'precipitationSum': PropertySchema( + r'precipitationProbabilityMax': PropertySchema( id: 6, + name: r'precipitationProbabilityMax', + type: IsarType.longList, + ), + r'precipitationSum': PropertySchema( + id: 7, name: r'precipitationSum', type: IsarType.doubleList, ), r'rain': PropertySchema( - id: 7, + id: 8, name: r'rain', type: IsarType.doubleList, ), r'relativehumidity2M': PropertySchema( - id: 8, + id: 9, name: r'relativehumidity2M', type: IsarType.longList, ), r'sunrise': PropertySchema( - id: 9, + id: 10, name: r'sunrise', type: IsarType.stringList, ), r'sunset': PropertySchema( - id: 10, + id: 11, name: r'sunset', type: IsarType.stringList, ), r'surfacePressure': PropertySchema( - id: 11, + id: 12, name: r'surfacePressure', type: IsarType.doubleList, ), r'temperature2M': PropertySchema( - id: 12, + id: 13, name: r'temperature2M', type: IsarType.doubleList, ), r'temperature2MMax': PropertySchema( - id: 13, + id: 14, name: r'temperature2MMax', type: IsarType.doubleList, ), r'temperature2MMin': PropertySchema( - id: 14, + id: 15, name: r'temperature2MMin', type: IsarType.doubleList, ), r'time': PropertySchema( - id: 15, + id: 16, name: r'time', type: IsarType.stringList, ), r'timeDaily': PropertySchema( - id: 16, + id: 17, name: r'timeDaily', type: IsarType.dateTimeList, ), r'timestamp': PropertySchema( - id: 17, + id: 18, name: r'timestamp', type: IsarType.dateTime, ), r'timezone': PropertySchema( - id: 18, + id: 19, name: r'timezone', type: IsarType.string, ), r'uvIndex': PropertySchema( - id: 19, + id: 20, name: r'uvIndex', type: IsarType.doubleList, ), r'visibility': PropertySchema( - id: 20, + id: 21, name: r'visibility', type: IsarType.doubleList, ), r'weathercode': PropertySchema( - id: 21, + id: 22, name: r'weathercode', type: IsarType.longList, ), r'weathercodeDaily': PropertySchema( - id: 22, + id: 23, name: r'weathercodeDaily', type: IsarType.longList, ), r'winddirection10M': PropertySchema( - id: 23, + id: 24, name: r'winddirection10M', type: IsarType.longList, ), r'windgusts10M': PropertySchema( - id: 24, + id: 25, name: r'windgusts10M', type: IsarType.doubleList, ), r'windgusts10MMax': PropertySchema( - id: 25, + id: 26, name: r'windgusts10MMax', type: IsarType.doubleList, ), r'windspeed10M': PropertySchema( - id: 26, + id: 27, name: r'windspeed10M', type: IsarType.doubleList, ), r'windspeed10MMax': PropertySchema( - id: 27, + id: 28, name: r'windspeed10MMax', type: IsarType.doubleList, ) @@ -1239,7 +1244,7 @@ const MainWeatherCacheSchema = CollectionSchema( getId: _mainWeatherCacheGetId, getLinks: _mainWeatherCacheGetLinks, attach: _mainWeatherCacheAttach, - version: '3.1.0', + version: '3.1.0+1', ); int _mainWeatherCacheEstimateSize( @@ -1284,6 +1289,12 @@ int _mainWeatherCacheEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.precipitationProbabilityMax; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } { final value = object.precipitationSum; if (value != null) { @@ -1443,28 +1454,29 @@ void _mainWeatherCacheSerialize( writer.writeLongList(offsets[3], object.cloudcover); writer.writeDoubleList(offsets[4], object.evapotranspiration); writer.writeDoubleList(offsets[5], object.precipitation); - writer.writeDoubleList(offsets[6], object.precipitationSum); - writer.writeDoubleList(offsets[7], object.rain); - writer.writeLongList(offsets[8], object.relativehumidity2M); - writer.writeStringList(offsets[9], object.sunrise); - writer.writeStringList(offsets[10], object.sunset); - writer.writeDoubleList(offsets[11], object.surfacePressure); - writer.writeDoubleList(offsets[12], object.temperature2M); - writer.writeDoubleList(offsets[13], object.temperature2MMax); - writer.writeDoubleList(offsets[14], object.temperature2MMin); - writer.writeStringList(offsets[15], object.time); - writer.writeDateTimeList(offsets[16], object.timeDaily); - writer.writeDateTime(offsets[17], object.timestamp); - writer.writeString(offsets[18], object.timezone); - writer.writeDoubleList(offsets[19], object.uvIndex); - writer.writeDoubleList(offsets[20], object.visibility); - writer.writeLongList(offsets[21], object.weathercode); - writer.writeLongList(offsets[22], object.weathercodeDaily); - writer.writeLongList(offsets[23], object.winddirection10M); - writer.writeDoubleList(offsets[24], object.windgusts10M); - writer.writeDoubleList(offsets[25], object.windgusts10MMax); - writer.writeDoubleList(offsets[26], object.windspeed10M); - writer.writeDoubleList(offsets[27], object.windspeed10MMax); + writer.writeLongList(offsets[6], object.precipitationProbabilityMax); + writer.writeDoubleList(offsets[7], object.precipitationSum); + writer.writeDoubleList(offsets[8], object.rain); + writer.writeLongList(offsets[9], object.relativehumidity2M); + writer.writeStringList(offsets[10], object.sunrise); + writer.writeStringList(offsets[11], object.sunset); + writer.writeDoubleList(offsets[12], object.surfacePressure); + writer.writeDoubleList(offsets[13], object.temperature2M); + writer.writeDoubleList(offsets[14], object.temperature2MMax); + writer.writeDoubleList(offsets[15], object.temperature2MMin); + writer.writeStringList(offsets[16], object.time); + writer.writeDateTimeList(offsets[17], object.timeDaily); + writer.writeDateTime(offsets[18], object.timestamp); + writer.writeString(offsets[19], object.timezone); + writer.writeDoubleList(offsets[20], object.uvIndex); + writer.writeDoubleList(offsets[21], object.visibility); + writer.writeLongList(offsets[22], object.weathercode); + writer.writeLongList(offsets[23], object.weathercodeDaily); + writer.writeLongList(offsets[24], object.winddirection10M); + writer.writeDoubleList(offsets[25], object.windgusts10M); + writer.writeDoubleList(offsets[26], object.windgusts10MMax); + writer.writeDoubleList(offsets[27], object.windspeed10M); + writer.writeDoubleList(offsets[28], object.windspeed10MMax); } MainWeatherCache _mainWeatherCacheDeserialize( @@ -1480,28 +1492,29 @@ MainWeatherCache _mainWeatherCacheDeserialize( cloudcover: reader.readLongList(offsets[3]), evapotranspiration: reader.readDoubleList(offsets[4]), precipitation: reader.readDoubleList(offsets[5]), - precipitationSum: reader.readDoubleList(offsets[6]), - rain: reader.readDoubleList(offsets[7]), - relativehumidity2M: reader.readLongList(offsets[8]), - sunrise: reader.readStringList(offsets[9]), - sunset: reader.readStringList(offsets[10]), - surfacePressure: reader.readDoubleList(offsets[11]), - temperature2M: reader.readDoubleList(offsets[12]), - temperature2MMax: reader.readDoubleList(offsets[13]), - temperature2MMin: reader.readDoubleList(offsets[14]), - time: reader.readStringList(offsets[15]), - timeDaily: reader.readDateTimeList(offsets[16]), - timestamp: reader.readDateTimeOrNull(offsets[17]), - timezone: reader.readStringOrNull(offsets[18]), - uvIndex: reader.readDoubleList(offsets[19]), - visibility: reader.readDoubleList(offsets[20]), - weathercode: reader.readLongList(offsets[21]), - weathercodeDaily: reader.readLongList(offsets[22]), - winddirection10M: reader.readLongList(offsets[23]), - windgusts10M: reader.readDoubleList(offsets[24]), - windgusts10MMax: reader.readDoubleList(offsets[25]), - windspeed10M: reader.readDoubleList(offsets[26]), - windspeed10MMax: reader.readDoubleList(offsets[27]), + precipitationProbabilityMax: reader.readLongList(offsets[6]), + precipitationSum: reader.readDoubleList(offsets[7]), + rain: reader.readDoubleList(offsets[8]), + relativehumidity2M: reader.readLongList(offsets[9]), + sunrise: reader.readStringList(offsets[10]), + sunset: reader.readStringList(offsets[11]), + surfacePressure: reader.readDoubleList(offsets[12]), + temperature2M: reader.readDoubleList(offsets[13]), + temperature2MMax: reader.readDoubleList(offsets[14]), + temperature2MMin: reader.readDoubleList(offsets[15]), + time: reader.readStringList(offsets[16]), + timeDaily: reader.readDateTimeList(offsets[17]), + timestamp: reader.readDateTimeOrNull(offsets[18]), + timezone: reader.readStringOrNull(offsets[19]), + uvIndex: reader.readDoubleList(offsets[20]), + visibility: reader.readDoubleList(offsets[21]), + weathercode: reader.readLongList(offsets[22]), + weathercodeDaily: reader.readLongList(offsets[23]), + winddirection10M: reader.readLongList(offsets[24]), + windgusts10M: reader.readDoubleList(offsets[25]), + windgusts10MMax: reader.readDoubleList(offsets[26]), + windspeed10M: reader.readDoubleList(offsets[27]), + windspeed10MMax: reader.readDoubleList(offsets[28]), ); object.id = id; return object; @@ -1527,17 +1540,17 @@ P _mainWeatherCacheDeserializeProp

    ( case 5: return (reader.readDoubleList(offset)) as P; case 6: - return (reader.readDoubleList(offset)) as P; + return (reader.readLongList(offset)) as P; case 7: return (reader.readDoubleList(offset)) as P; case 8: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 9: - return (reader.readStringList(offset)) as P; + return (reader.readLongList(offset)) as P; case 10: return (reader.readStringList(offset)) as P; case 11: - return (reader.readDoubleList(offset)) as P; + return (reader.readStringList(offset)) as P; case 12: return (reader.readDoubleList(offset)) as P; case 13: @@ -1545,31 +1558,33 @@ P _mainWeatherCacheDeserializeProp

    ( case 14: return (reader.readDoubleList(offset)) as P; case 15: - return (reader.readStringList(offset)) as P; - case 16: - return (reader.readDateTimeList(offset)) as P; - case 17: - return (reader.readDateTimeOrNull(offset)) as P; - case 18: - return (reader.readStringOrNull(offset)) as P; - case 19: return (reader.readDoubleList(offset)) as P; + case 16: + return (reader.readStringList(offset)) as P; + case 17: + return (reader.readDateTimeList(offset)) as P; + case 18: + return (reader.readDateTimeOrNull(offset)) as P; + case 19: + return (reader.readStringOrNull(offset)) as P; case 20: return (reader.readDoubleList(offset)) as P; case 21: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 22: return (reader.readLongList(offset)) as P; case 23: return (reader.readLongList(offset)) as P; case 24: - return (reader.readDoubleList(offset)) as P; + return (reader.readLongList(offset)) as P; case 25: return (reader.readDoubleList(offset)) as P; case 26: return (reader.readDoubleList(offset)) as P; case 27: return (reader.readDoubleList(offset)) as P; + case 28: + return (reader.readDoubleList(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); } @@ -2753,6 +2768,169 @@ extension MainWeatherCacheQueryFilter }); } + QueryBuilder + precipitationProbabilityMaxIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'precipitationProbabilityMax', + )); + }); + } + + QueryBuilder + precipitationProbabilityMaxIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'precipitationProbabilityMax', + )); + }); + } + + QueryBuilder + precipitationProbabilityMaxElementEqualTo(int value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'precipitationProbabilityMax', + value: value, + )); + }); + } + + QueryBuilder + precipitationProbabilityMaxElementGreaterThan( + int value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'precipitationProbabilityMax', + value: value, + )); + }); + } + + QueryBuilder + precipitationProbabilityMaxElementLessThan( + int value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'precipitationProbabilityMax', + value: value, + )); + }); + } + + QueryBuilder + precipitationProbabilityMaxElementBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'precipitationProbabilityMax', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); + }); + } + + QueryBuilder + precipitationProbabilityMaxLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationProbabilityMax', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + precipitationProbabilityMaxIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationProbabilityMax', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + precipitationProbabilityMaxIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationProbabilityMax', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + precipitationProbabilityMaxLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationProbabilityMax', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + precipitationProbabilityMaxLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationProbabilityMax', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + precipitationProbabilityMaxLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationProbabilityMax', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + QueryBuilder precipitationSumIsNull() { return QueryBuilder.apply(this, (query) { @@ -6727,6 +6905,13 @@ extension MainWeatherCacheQueryWhereDistinct }); } + QueryBuilder + distinctByPrecipitationProbabilityMax() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'precipitationProbabilityMax'); + }); + } + QueryBuilder distinctByPrecipitationSum() { return QueryBuilder.apply(this, (query) { @@ -6930,6 +7115,13 @@ extension MainWeatherCacheQueryProperty }); } + QueryBuilder?, QQueryOperations> + precipitationProbabilityMaxProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'precipitationProbabilityMax'); + }); + } + QueryBuilder?, QQueryOperations> precipitationSumProperty() { return QueryBuilder.apply(this, (query) { @@ -7127,7 +7319,7 @@ const LocationCacheSchema = CollectionSchema( getId: _locationCacheGetId, getLinks: _locationCacheGetLinks, attach: _locationCacheAttach, - version: '3.1.0', + version: '3.1.0+1', ); int _locationCacheEstimateSize( @@ -8064,113 +8256,118 @@ const WeatherCardSchema = CollectionSchema( name: r'precipitation', type: IsarType.doubleList, ), - r'precipitationSum': PropertySchema( + r'precipitationProbabilityMax': PropertySchema( id: 10, + name: r'precipitationProbabilityMax', + type: IsarType.longList, + ), + r'precipitationSum': PropertySchema( + id: 11, name: r'precipitationSum', type: IsarType.doubleList, ), r'rain': PropertySchema( - id: 11, + id: 12, name: r'rain', type: IsarType.doubleList, ), r'relativehumidity2M': PropertySchema( - id: 12, + id: 13, name: r'relativehumidity2M', type: IsarType.longList, ), r'sunrise': PropertySchema( - id: 13, + id: 14, name: r'sunrise', type: IsarType.stringList, ), r'sunset': PropertySchema( - id: 14, + id: 15, name: r'sunset', type: IsarType.stringList, ), r'surfacePressure': PropertySchema( - id: 15, + id: 16, name: r'surfacePressure', type: IsarType.doubleList, ), r'temperature2M': PropertySchema( - id: 16, + id: 17, name: r'temperature2M', type: IsarType.doubleList, ), r'temperature2MMax': PropertySchema( - id: 17, + id: 18, name: r'temperature2MMax', type: IsarType.doubleList, ), r'temperature2MMin': PropertySchema( - id: 18, + id: 19, name: r'temperature2MMin', type: IsarType.doubleList, ), r'time': PropertySchema( - id: 19, + id: 20, name: r'time', type: IsarType.stringList, ), r'timeDaily': PropertySchema( - id: 20, + id: 21, name: r'timeDaily', type: IsarType.dateTimeList, ), r'timestamp': PropertySchema( - id: 21, + id: 22, name: r'timestamp', type: IsarType.dateTime, ), r'timezone': PropertySchema( - id: 22, + id: 23, name: r'timezone', type: IsarType.string, ), r'uvIndex': PropertySchema( - id: 23, + id: 24, name: r'uvIndex', type: IsarType.doubleList, ), r'visibility': PropertySchema( - id: 24, + id: 25, name: r'visibility', type: IsarType.doubleList, ), r'weathercode': PropertySchema( - id: 25, + id: 26, name: r'weathercode', type: IsarType.longList, ), r'weathercodeDaily': PropertySchema( - id: 26, + id: 27, name: r'weathercodeDaily', type: IsarType.longList, ), r'winddirection10M': PropertySchema( - id: 27, + id: 28, name: r'winddirection10M', type: IsarType.longList, ), r'windgusts10M': PropertySchema( - id: 28, + id: 29, name: r'windgusts10M', type: IsarType.doubleList, ), r'windgusts10MMax': PropertySchema( - id: 29, + id: 30, name: r'windgusts10MMax', type: IsarType.doubleList, ), r'windspeed10M': PropertySchema( - id: 30, + id: 31, name: r'windspeed10M', type: IsarType.doubleList, ), r'windspeed10MMax': PropertySchema( - id: 31, + id: 32, name: r'windspeed10MMax', type: IsarType.doubleList, ) @@ -8186,7 +8383,7 @@ const WeatherCardSchema = CollectionSchema( getId: _weatherCardGetId, getLinks: _weatherCardGetLinks, attach: _weatherCardAttach, - version: '3.1.0', + version: '3.1.0+1', ); int _weatherCardEstimateSize( @@ -8243,6 +8440,12 @@ int _weatherCardEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.precipitationProbabilityMax; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } { final value = object.precipitationSum; if (value != null) { @@ -8406,28 +8609,29 @@ void _weatherCardSerialize( writer.writeDouble(offsets[7], object.lat); writer.writeDouble(offsets[8], object.lon); writer.writeDoubleList(offsets[9], object.precipitation); - writer.writeDoubleList(offsets[10], object.precipitationSum); - writer.writeDoubleList(offsets[11], object.rain); - writer.writeLongList(offsets[12], object.relativehumidity2M); - writer.writeStringList(offsets[13], object.sunrise); - writer.writeStringList(offsets[14], object.sunset); - writer.writeDoubleList(offsets[15], object.surfacePressure); - writer.writeDoubleList(offsets[16], object.temperature2M); - writer.writeDoubleList(offsets[17], object.temperature2MMax); - writer.writeDoubleList(offsets[18], object.temperature2MMin); - writer.writeStringList(offsets[19], object.time); - writer.writeDateTimeList(offsets[20], object.timeDaily); - writer.writeDateTime(offsets[21], object.timestamp); - writer.writeString(offsets[22], object.timezone); - writer.writeDoubleList(offsets[23], object.uvIndex); - writer.writeDoubleList(offsets[24], object.visibility); - writer.writeLongList(offsets[25], object.weathercode); - writer.writeLongList(offsets[26], object.weathercodeDaily); - writer.writeLongList(offsets[27], object.winddirection10M); - writer.writeDoubleList(offsets[28], object.windgusts10M); - writer.writeDoubleList(offsets[29], object.windgusts10MMax); - writer.writeDoubleList(offsets[30], object.windspeed10M); - writer.writeDoubleList(offsets[31], object.windspeed10MMax); + writer.writeLongList(offsets[10], object.precipitationProbabilityMax); + writer.writeDoubleList(offsets[11], object.precipitationSum); + writer.writeDoubleList(offsets[12], object.rain); + writer.writeLongList(offsets[13], object.relativehumidity2M); + writer.writeStringList(offsets[14], object.sunrise); + writer.writeStringList(offsets[15], object.sunset); + writer.writeDoubleList(offsets[16], object.surfacePressure); + writer.writeDoubleList(offsets[17], object.temperature2M); + writer.writeDoubleList(offsets[18], object.temperature2MMax); + writer.writeDoubleList(offsets[19], object.temperature2MMin); + writer.writeStringList(offsets[20], object.time); + writer.writeDateTimeList(offsets[21], object.timeDaily); + writer.writeDateTime(offsets[22], object.timestamp); + writer.writeString(offsets[23], object.timezone); + writer.writeDoubleList(offsets[24], object.uvIndex); + writer.writeDoubleList(offsets[25], object.visibility); + writer.writeLongList(offsets[26], object.weathercode); + writer.writeLongList(offsets[27], object.weathercodeDaily); + writer.writeLongList(offsets[28], object.winddirection10M); + writer.writeDoubleList(offsets[29], object.windgusts10M); + writer.writeDoubleList(offsets[30], object.windgusts10MMax); + writer.writeDoubleList(offsets[31], object.windspeed10M); + writer.writeDoubleList(offsets[32], object.windspeed10MMax); } WeatherCard _weatherCardDeserialize( @@ -8447,28 +8651,29 @@ WeatherCard _weatherCardDeserialize( lat: reader.readDoubleOrNull(offsets[7]), lon: reader.readDoubleOrNull(offsets[8]), precipitation: reader.readDoubleList(offsets[9]), - precipitationSum: reader.readDoubleList(offsets[10]), - rain: reader.readDoubleList(offsets[11]), - relativehumidity2M: reader.readLongList(offsets[12]), - sunrise: reader.readStringList(offsets[13]), - sunset: reader.readStringList(offsets[14]), - surfacePressure: reader.readDoubleList(offsets[15]), - temperature2M: reader.readDoubleList(offsets[16]), - temperature2MMax: reader.readDoubleList(offsets[17]), - temperature2MMin: reader.readDoubleList(offsets[18]), - time: reader.readStringList(offsets[19]), - timeDaily: reader.readDateTimeList(offsets[20]), - timestamp: reader.readDateTimeOrNull(offsets[21]), - timezone: reader.readStringOrNull(offsets[22]), - uvIndex: reader.readDoubleList(offsets[23]), - visibility: reader.readDoubleList(offsets[24]), - weathercode: reader.readLongList(offsets[25]), - weathercodeDaily: reader.readLongList(offsets[26]), - winddirection10M: reader.readLongList(offsets[27]), - windgusts10M: reader.readDoubleList(offsets[28]), - windgusts10MMax: reader.readDoubleList(offsets[29]), - windspeed10M: reader.readDoubleList(offsets[30]), - windspeed10MMax: reader.readDoubleList(offsets[31]), + precipitationProbabilityMax: reader.readLongList(offsets[10]), + precipitationSum: reader.readDoubleList(offsets[11]), + rain: reader.readDoubleList(offsets[12]), + relativehumidity2M: reader.readLongList(offsets[13]), + sunrise: reader.readStringList(offsets[14]), + sunset: reader.readStringList(offsets[15]), + surfacePressure: reader.readDoubleList(offsets[16]), + temperature2M: reader.readDoubleList(offsets[17]), + temperature2MMax: reader.readDoubleList(offsets[18]), + temperature2MMin: reader.readDoubleList(offsets[19]), + time: reader.readStringList(offsets[20]), + timeDaily: reader.readDateTimeList(offsets[21]), + timestamp: reader.readDateTimeOrNull(offsets[22]), + timezone: reader.readStringOrNull(offsets[23]), + uvIndex: reader.readDoubleList(offsets[24]), + visibility: reader.readDoubleList(offsets[25]), + weathercode: reader.readLongList(offsets[26]), + weathercodeDaily: reader.readLongList(offsets[27]), + winddirection10M: reader.readLongList(offsets[28]), + windgusts10M: reader.readDoubleList(offsets[29]), + windgusts10MMax: reader.readDoubleList(offsets[30]), + windspeed10M: reader.readDoubleList(offsets[31]), + windspeed10MMax: reader.readDoubleList(offsets[32]), ); object.id = id; return object; @@ -8502,17 +8707,17 @@ P _weatherCardDeserializeProp

    ( case 9: return (reader.readDoubleList(offset)) as P; case 10: - return (reader.readDoubleList(offset)) as P; + return (reader.readLongList(offset)) as P; case 11: return (reader.readDoubleList(offset)) as P; case 12: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 13: - return (reader.readStringList(offset)) as P; + return (reader.readLongList(offset)) as P; case 14: return (reader.readStringList(offset)) as P; case 15: - return (reader.readDoubleList(offset)) as P; + return (reader.readStringList(offset)) as P; case 16: return (reader.readDoubleList(offset)) as P; case 17: @@ -8520,31 +8725,33 @@ P _weatherCardDeserializeProp

    ( case 18: return (reader.readDoubleList(offset)) as P; case 19: - return (reader.readStringList(offset)) as P; - case 20: - return (reader.readDateTimeList(offset)) as P; - case 21: - return (reader.readDateTimeOrNull(offset)) as P; - case 22: - return (reader.readStringOrNull(offset)) as P; - case 23: return (reader.readDoubleList(offset)) as P; + case 20: + return (reader.readStringList(offset)) as P; + case 21: + return (reader.readDateTimeList(offset)) as P; + case 22: + return (reader.readDateTimeOrNull(offset)) as P; + case 23: + return (reader.readStringOrNull(offset)) as P; case 24: return (reader.readDoubleList(offset)) as P; case 25: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 26: return (reader.readLongList(offset)) as P; case 27: return (reader.readLongList(offset)) as P; case 28: - return (reader.readDoubleList(offset)) as P; + return (reader.readLongList(offset)) as P; case 29: return (reader.readDoubleList(offset)) as P; case 30: return (reader.readDoubleList(offset)) as P; case 31: return (reader.readDoubleList(offset)) as P; + case 32: + return (reader.readDoubleList(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); } @@ -10181,6 +10388,169 @@ extension WeatherCardQueryFilter }); } + QueryBuilder + precipitationProbabilityMaxIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'precipitationProbabilityMax', + )); + }); + } + + QueryBuilder + precipitationProbabilityMaxIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'precipitationProbabilityMax', + )); + }); + } + + QueryBuilder + precipitationProbabilityMaxElementEqualTo(int value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'precipitationProbabilityMax', + value: value, + )); + }); + } + + QueryBuilder + precipitationProbabilityMaxElementGreaterThan( + int value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'precipitationProbabilityMax', + value: value, + )); + }); + } + + QueryBuilder + precipitationProbabilityMaxElementLessThan( + int value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'precipitationProbabilityMax', + value: value, + )); + }); + } + + QueryBuilder + precipitationProbabilityMaxElementBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'precipitationProbabilityMax', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); + }); + } + + QueryBuilder + precipitationProbabilityMaxLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationProbabilityMax', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + precipitationProbabilityMaxIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationProbabilityMax', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + precipitationProbabilityMaxIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationProbabilityMax', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + precipitationProbabilityMaxLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationProbabilityMax', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + precipitationProbabilityMaxLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationProbabilityMax', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + precipitationProbabilityMaxLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'precipitationProbabilityMax', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + QueryBuilder precipitationSumIsNull() { return QueryBuilder.apply(this, (query) { @@ -14260,6 +14630,13 @@ extension WeatherCardQueryWhereDistinct }); } + QueryBuilder + distinctByPrecipitationProbabilityMax() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'precipitationProbabilityMax'); + }); + } + QueryBuilder distinctByPrecipitationSum() { return QueryBuilder.apply(this, (query) { @@ -14476,6 +14853,13 @@ extension WeatherCardQueryProperty }); } + QueryBuilder?, QQueryOperations> + precipitationProbabilityMaxProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'precipitationProbabilityMax'); + }); + } + QueryBuilder?, QQueryOperations> precipitationSumProperty() { return QueryBuilder.apply(this, (query) { diff --git a/lib/app/modules/weather.dart b/lib/app/modules/weather.dart index 8514c99..799f5c8 100644 --- a/lib/app/modules/weather.dart +++ b/lib/app/modules/weather.dart @@ -191,7 +191,7 @@ class _WeatherPageState extends State { ), ) : const MyShimmer( - hight: 450, + hight: 455, edgeInsetsMargin: EdgeInsets.only(bottom: 15), ), ), diff --git a/lib/app/widgets/daily_card.dart b/lib/app/widgets/daily_card.dart index 2b2f2f8..6e71ae7 100644 --- a/lib/app/widgets/daily_card.dart +++ b/lib/app/widgets/daily_card.dart @@ -1,7 +1,33 @@ import 'package:flutter/material.dart'; class DailyCard extends StatelessWidget { - const DailyCard({super.key}); + const DailyCard({ + super.key, + this.timeDaily, + this.weathercodeDaily, + this.temperature2MMax, + this.temperature2MMin, + this.apparentTemperatureMax, + this.apparentTemperatureMin, + this.sunrise, + this.sunset, + this.precipitationSum, + this.precipitationProbabilityMax, + this.windspeed10MMax, + this.windgusts10MMax, + }); + final DateTime? timeDaily; + final int? weathercodeDaily; + final double? temperature2MMax; + final double? temperature2MMin; + final double? apparentTemperatureMax; + final double? apparentTemperatureMin; + final String? sunrise; + final String? sunset; + final double? precipitationSum; + final int? precipitationProbabilityMax; + final double? windspeed10MMax; + final double? windgusts10MMax; @override Widget build(BuildContext context) { diff --git a/lib/app/widgets/weather_daily.dart b/lib/app/widgets/weather_daily.dart index 3e80fc3..d6605b6 100644 --- a/lib/app/widgets/weather_daily.dart +++ b/lib/app/widgets/weather_daily.dart @@ -31,7 +31,7 @@ class _WeatherDailyState extends State { @override Widget build(BuildContext context) { return Container( - height: 450, + height: 455, margin: const EdgeInsets.only(bottom: 15), padding: const EdgeInsets.symmetric( horizontal: 15, diff --git a/lib/app/widgets/weather_more.dart b/lib/app/widgets/weather_more.dart index 784d8ec..57e0399 100644 --- a/lib/app/widgets/weather_more.dart +++ b/lib/app/widgets/weather_more.dart @@ -46,9 +46,35 @@ class _WeatherMoreState extends State { body: ListView.builder( itemCount: widget.mainWeatherCache?.timeDaily!.length ?? widget.weatherCard?.timeDaily!.length, - itemBuilder: (context, index) { - return const DailyCard(); - }, + itemBuilder: (context, index) => DailyCard( + timeDaily: widget.mainWeatherCache?.timeDaily![index] ?? + widget.weatherCard?.timeDaily![index], + weathercodeDaily: widget.mainWeatherCache?.weathercodeDaily![index] ?? + widget.weatherCard?.weathercodeDaily![index], + temperature2MMax: widget.mainWeatherCache?.temperature2MMax![index] ?? + widget.weatherCard?.temperature2MMax![index], + temperature2MMin: widget.mainWeatherCache?.temperature2MMin![index] ?? + widget.weatherCard?.temperature2MMin![index], + apparentTemperatureMax: + widget.mainWeatherCache?.apparentTemperatureMax![index] ?? + widget.weatherCard?.apparentTemperatureMax![index], + apparentTemperatureMin: + widget.mainWeatherCache?.apparentTemperatureMin![index] ?? + widget.weatherCard?.apparentTemperatureMin![index], + sunrise: widget.mainWeatherCache?.sunrise![index] ?? + widget.weatherCard?.sunrise![index], + sunset: widget.mainWeatherCache?.sunset![index] ?? + widget.weatherCard?.sunset![index], + precipitationSum: widget.mainWeatherCache?.precipitationSum![index] ?? + widget.weatherCard?.precipitationSum![index], + precipitationProbabilityMax: + widget.mainWeatherCache?.precipitationProbabilityMax![index] ?? + widget.weatherCard?.precipitationProbabilityMax![index], + windspeed10MMax: widget.mainWeatherCache?.windspeed10MMax![index] ?? + widget.weatherCard?.windspeed10MMax![index], + windgusts10MMax: widget.mainWeatherCache?.windgusts10MMax![index] ?? + widget.weatherCard?.windgusts10MMax![index], + ), ), ); } diff --git a/pubspec.lock b/pubspec.lock index 781dd5b..1bf9f08 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,18 +5,18 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: a36ec4843dc30ea6bf652bf25e3448db6c5e8bcf4aa55f063a5d1dad216d8214 + sha256: "8880b4cfe7b5b17d57c052a5a3a8cc1d4f546261c7cc8fbd717bd53f48db0568" url: "https://pub.dev" source: hosted - version: "58.0.0" + version: "59.0.0" analyzer: dependency: transitive description: name: analyzer - sha256: cc4242565347e98424ce9945c819c192ec0838cb9d1f6aa4a97cc96becbc5b27 + sha256: a89627f49b0e70e068130a36571409726b04dab12da7e5625941d2c8ec278b96 url: "https://pub.dev" source: hosted - version: "5.10.0" + version: "5.11.1" archive: dependency: transitive description: @@ -529,26 +529,26 @@ packages: dependency: "direct main" description: name: isar - sha256: aef9b9dd6ea4f5fca1f6fdc38e76010e4762cdb1400169d99a0b42e8f71e4f8a + sha256: "99165dadb2cf2329d3140198363a7e7bff9bbd441871898a87e26914d25cf1ea" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.0+1" isar_flutter_libs: dependency: "direct main" description: name: isar_flutter_libs - sha256: "8dcfb6889e68d9f0ad9980d77b3903782811645d848786e6ea6518ea6058e45d" + sha256: bc6768cc4b9c61aabff77152e7f33b4b17d2fc93134f7af1c3dd51500fe8d5e8 url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.0+1" isar_generator: dependency: "direct dev" description: name: isar_generator - sha256: "3813ddc78bff4d8328a5026a1c7af80a8c688719bf6fba6ec4b56f8772c5b8bf" + sha256: "76c121e1295a30423604f2f819bc255bc79f852f3bc8743a24017df6068ad133" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.0+1" js: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 44f58fd..7c1329e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: sdk: flutter get: ^4.6.5 dio: ^5.1.1 - isar: ^3.1.0 + isar: ^3.1.0+1 intl: ^0.17.0 shimmer: ^2.0.0 iconsax: ^0.0.8 @@ -28,7 +28,7 @@ dependencies: path_provider: ^2.0.14 package_info_plus: ^3.1.0 connectivity_plus: ^3.0.4 - isar_flutter_libs: ^3.1.0 + isar_flutter_libs: ^3.1.0+1 flutter_displaymode: ^0.6.0 lat_lng_to_timezone: ^0.2.0 custom_navigation_bar: ^0.8.2 @@ -40,7 +40,7 @@ dev_dependencies: sdk: flutter flutter_lints: ^2.0.1 build_runner: ^2.3.3 - isar_generator: ^3.1.0 + isar_generator: ^3.1.0+1 flutter_native_splash: ^2.2.19 flutter_launcher_icons: ^0.13.1 From cd56e31589e2e3392689d1992714deaa6d758014 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Tue, 25 Apr 2023 15:14:24 +0300 Subject: [PATCH 011/246] ui card daily --- assets/images/cold.png | Bin 0 -> 24178 bytes assets/images/hot.png | Bin 0 -> 23041 bytes lib/app/widgets/daily_card.dart | 140 +++++++++++++++++++++++++++- lib/app/widgets/status_im_fa.dart | 4 +- lib/app/widgets/weather_daily.dart | 121 ++++++++++++------------ lib/app/widgets/weather_hourly.dart | 2 +- lib/app/widgets/weather_now.dart | 2 +- lib/translation/translation.dart | 30 ++++++ 8 files changed, 233 insertions(+), 66 deletions(-) create mode 100644 assets/images/cold.png create mode 100644 assets/images/hot.png diff --git a/assets/images/cold.png b/assets/images/cold.png new file mode 100644 index 0000000000000000000000000000000000000000..a537bcbf3e7b69c795b0ec4711add093ecf1fc17 GIT binary patch literal 24178 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 Sq09{c{5{ap*DO}IfBrvJqCkKE literal 0 HcmV?d00001 diff --git a/assets/images/hot.png b/assets/images/hot.png new file mode 100644 index 0000000000000000000000000000000000000000..fe22834bb591abb1eab3e1112e18eff2d5e9e77d GIT binary patch literal 23041 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 literal 0 HcmV?d00001 diff --git a/lib/app/widgets/daily_card.dart b/lib/app/widgets/daily_card.dart index 6e71ae7..406ee0e 100644 --- a/lib/app/widgets/daily_card.dart +++ b/lib/app/widgets/daily_card.dart @@ -1,4 +1,10 @@ import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; +import 'package:rain/app/widgets/desc.dart'; +import 'package:rain/app/widgets/status.dart'; +import 'package:rain/app/widgets/status_im_fa.dart'; +import 'package:rain/app/widgets/sunset_sunrise.dart'; class DailyCard extends StatelessWidget { const DailyCard({ @@ -31,6 +37,138 @@ class DailyCard extends StatelessWidget { @override Widget build(BuildContext context) { - return Container(); + final locale = Get.locale; + final status = Status(); + final statusImFa = StatusImFa(); + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 10), + child: Column( + children: [ + Text( + DateFormat.MMMMEEEEd(locale?.languageCode).format(timeDaily!), + style: context.theme.textTheme.titleLarge, + ), + Container( + margin: const EdgeInsets.symmetric(vertical: 15), + padding: const EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + decoration: BoxDecoration( + color: context.theme.colorScheme.primaryContainer, + borderRadius: const BorderRadius.all( + Radius.circular(20), + ), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Row( + children: [ + Image.asset( + status.getImage7Day(weathercodeDaily!), + scale: 3, + ), + const SizedBox(width: 5), + Expanded( + child: Text( + status.getText(weathercodeDaily!), + style: context.theme.textTheme.labelLarge + ?.copyWith(fontSize: 16), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + ), + Row( + children: [ + Text( + statusImFa.getDegree(temperature2MMin!.round()), + style: context.theme.textTheme.labelLarge + ?.copyWith(fontSize: 16), + ), + Text( + ' / ', + style: context.theme.textTheme.bodyMedium?.copyWith( + color: Colors.grey, + ), + ), + Text( + statusImFa.getDegree(temperature2MMax!.round()), + style: context.theme.textTheme.bodyMedium + ?.copyWith(fontSize: 16), + ), + ], + ), + ], + ), + ), + SunsetSunrise( + timeSunrise: sunrise!, + timeSunset: sunset!, + ), + Container( + margin: const EdgeInsets.only(bottom: 15), + padding: const EdgeInsets.only(top: 20, bottom: 5), + decoration: BoxDecoration( + color: context.theme.colorScheme.primaryContainer, + borderRadius: const BorderRadius.all( + Radius.circular(20), + ), + ), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + DescWeather( + imageName: 'assets/images/humidity.png', + value: '$precipitationProbabilityMax%', + desc: 'precipitationProbabilit'.tr, + ), + DescWeather( + imageName: 'assets/images/wind.png', + value: statusImFa.getSpeed(windspeed10MMax!.round()), + desc: 'wind'.tr, + ), + DescWeather( + imageName: 'assets/images/windgusts.png', + value: statusImFa.getSpeed(windgusts10MMax!.round()), + desc: 'windgusts'.tr, + ), + ], + ), + const SizedBox(height: 5), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + DescWeather( + imageName: 'assets/images/rainfall.png', + value: statusImFa.getPrecipitation(precipitationSum!), + desc: 'precipitation'.tr, + ), + DescWeather( + imageName: 'assets/images/cold.png', + value: + statusImFa.getDegree(apparentTemperatureMin!.round()), + desc: 'apparentTemperatureMin'.tr, + ), + DescWeather( + imageName: 'assets/images/hot.png', + value: + statusImFa.getDegree(apparentTemperatureMax!.round()), + desc: 'apparentTemperatureMax'.tr, + ), + ], + ), + ], + ), + ), + ], + ), + ); } } diff --git a/lib/app/widgets/status_im_fa.dart b/lib/app/widgets/status_im_fa.dart index d0c736e..cc2d509 100644 --- a/lib/app/widgets/status_im_fa.dart +++ b/lib/app/widgets/status_im_fa.dart @@ -51,7 +51,7 @@ class StatusImFa { String getTimeFormat(String time) { switch (settings.timeformat) { case '12': - return DateFormat.jm().format(DateTime.tryParse(time)!); + return DateFormat.j().format(DateTime.tryParse(time)!); case '24': return DateFormat.Hm().format(DateTime.tryParse(time)!); default: @@ -62,7 +62,7 @@ class StatusImFa { String getTimeFormatTz(TZDateTime time) { switch (settings.timeformat) { case '12': - return DateFormat.jm().format(time); + return DateFormat.j().format(time); case '24': return DateFormat.Hm().format(time); default: diff --git a/lib/app/widgets/weather_daily.dart b/lib/app/widgets/weather_daily.dart index d6605b6..7d5ea93 100644 --- a/lib/app/widgets/weather_daily.dart +++ b/lib/app/widgets/weather_daily.dart @@ -47,71 +47,70 @@ class _WeatherDailyState extends State { children: [ Expanded( child: ListView.builder( - physics: const NeverScrollableScrollPhysics(), - itemCount: 7, - itemBuilder: (ctx, i) { - return Container( - margin: const EdgeInsets.symmetric(vertical: 12), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: Text( - DateFormat.EEEE(locale?.languageCode) - .format(widget.date[i]), - style: context.theme.textTheme.labelLarge, - ), + physics: const NeverScrollableScrollPhysics(), + itemCount: 7, + itemBuilder: (ctx, i) { + return Container( + margin: const EdgeInsets.symmetric(vertical: 12), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Text( + DateFormat.EEEE(locale?.languageCode) + .format(widget.date[i]), + style: context.theme.textTheme.labelLarge, ), - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Image.asset( - status.getImage7Day(widget.weather[i]), - scale: 3, - ), - const SizedBox(width: 5), - Expanded( - child: Text( - status.getText(widget.weather[i]), - style: context.theme.textTheme.labelLarge, - overflow: TextOverflow.ellipsis, - ), - ), - ], - ), - ), - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Text( - statusImFa.getDegree( - widget.minDegree[i].round().toInt()), + ), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + status.getImage7Day(widget.weather[i]), + scale: 3, + ), + const SizedBox(width: 5), + Expanded( + child: Text( + status.getText(widget.weather[i]), style: context.theme.textTheme.labelLarge, + overflow: TextOverflow.ellipsis, ), - Text( - ' / ', - style: context.theme.textTheme.bodyMedium - ?.copyWith( - color: Colors.grey, - ), - ), - Text( - statusImFa.getDegree( - widget.maxDegree[i].round().toInt()), - style: context.theme.textTheme.bodyMedium - ?.copyWith( - color: Colors.grey, - ), - ), - ], - ), + ), + ], ), - ], - ), - ); - }), + ), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Text( + statusImFa.getDegree(widget.minDegree[i].round()), + style: context.theme.textTheme.labelLarge, + ), + Text( + ' / ', + style: + context.theme.textTheme.bodyMedium?.copyWith( + color: Colors.grey, + ), + ), + Text( + statusImFa.getDegree(widget.maxDegree[i].round()), + style: + context.theme.textTheme.bodyMedium?.copyWith( + color: Colors.grey, + ), + ), + ], + ), + ), + ], + ), + ); + }, + ), ), const Divider(), GestureDetector( diff --git a/lib/app/widgets/weather_hourly.dart b/lib/app/widgets/weather_hourly.dart index 3a29c39..2ec7f54 100644 --- a/lib/app/widgets/weather_hourly.dart +++ b/lib/app/widgets/weather_hourly.dart @@ -54,7 +54,7 @@ class _WeatherHourlyState extends State { scale: 3, ), Text( - statusImFa.getDegree(widget.degree.round().toInt()), + statusImFa.getDegree(widget.degree.round()), style: context.theme.textTheme.titleMedium?.copyWith( fontWeight: FontWeight.w600, ), diff --git a/lib/app/widgets/weather_now.dart b/lib/app/widgets/weather_now.dart index ec3aade..b99909b 100644 --- a/lib/app/widgets/weather_now.dart +++ b/lib/app/widgets/weather_now.dart @@ -40,7 +40,7 @@ class _WeatherNowState extends State { height: 200, ), GlowText( - '${widget.degree.round().toInt()}', + '${widget.degree.round()}', style: context.theme.textTheme.displayLarge?.copyWith( fontSize: 90, fontWeight: FontWeight.w800, diff --git a/lib/translation/translation.dart b/lib/translation/translation.dart index 35e9f5d..8751fc8 100644 --- a/lib/translation/translation.dart +++ b/lib/translation/translation.dart @@ -96,6 +96,9 @@ class Translation extends Translations { 'northwest': 'Северо-запад', 'project': 'Проект на', 'version': 'Версия приложения', + 'precipitationProbabilit': 'Вероятность выпадения осадков', + 'apparentTemperatureMin': 'Минимальная ощущаемая температура', + 'apparentTemperatureMax': 'Максимальная ощущаемая температура', }, 'en_US': { 'start': 'Get Started', @@ -190,6 +193,9 @@ class Translation extends Translations { 'northwest': 'Northwest', 'project': 'Project on', 'version': 'Application version', + 'precipitationProbabilit': 'Precipitation probability', + 'apparentTemperatureMin': 'Minimum apparent temperature', + 'apparentTemperatureMax': 'Maximum apparent temperature', }, 'fr_FR': { 'start': 'Démarrer', @@ -285,6 +291,9 @@ class Translation extends Translations { 'northwest': 'Nord-Ouest', 'project': 'Project on', 'version': 'Application version', + 'precipitationProbabilit': 'Probabilité de précipitation', + 'apparentTemperatureMin': 'Température apparente minimale', + 'apparentTemperatureMax': 'Température apparente maximale', }, 'it_IT': { 'start': 'Clicca per iniziare', @@ -380,6 +389,9 @@ class Translation extends Translations { 'northwest': 'Nord-ovest', 'project': 'Progetto su', 'version': 'Versione dell\'applicazione', + 'precipitationProbabilit': 'Probabilità di precipitazione', + 'apparentTemperatureMin': 'Temperatura apparente minima', + 'apparentTemperatureMax': 'Temperatura apparente massima', }, 'de_DE': { 'start': 'Los gehts', @@ -475,6 +487,9 @@ class Translation extends Translations { 'northwest': 'Nordwesten', 'project': 'Projekt auf', 'version': 'Anwendungsversion', + 'precipitationProbabilit': 'Niederschlagswahrscheinlichkeit', + 'apparentTemperatureMin': 'Minimale gefühlte Temperatur', + 'apparentTemperatureMax': 'Maximale gefühlte Temperatur', }, 'tr_TR': { 'start': 'Başlat', @@ -569,6 +584,9 @@ class Translation extends Translations { 'northwest': 'Kuzeybatı', 'project': 'Proje üzerinde', 'version': 'Uygulama sürümü', + 'precipitationProbabilit': 'Yağış olasılığı', + 'apparentTemperatureMin': 'Minimum hissedilen sıcaklık', + 'apparentTemperatureMax': 'Maksimum hissedilen sıcaklık', }, 'pt_BR': { 'start': 'Iniciar', @@ -663,6 +681,9 @@ class Translation extends Translations { 'northwest': 'Noroeste', 'project': 'Projeto em', 'version': 'Versão do aplicativo', + 'precipitationProbabilit': 'Probabilidade de precipitação', + 'apparentTemperatureMin': 'Temperatura aparente mínima', + 'apparentTemperatureMax': 'Temperatura aparente máxima', }, 'es_ES': { 'start': 'Empezar', @@ -758,6 +779,9 @@ class Translation extends Translations { 'northwest': 'Noroeste', 'project': 'Proyecto en', 'version': 'Versión de la aplicación', + 'precipitationProbabilit': 'Probabilidad de precipitación', + 'apparentTemperatureMin': 'Temperatura aparente mínima', + 'apparentTemperatureMax': 'Temperatura aparente máxima', }, 'sk_SK': { 'start': 'Začať', @@ -852,6 +876,9 @@ class Translation extends Translations { 'northwest': 'Severo-Západ', 'project': 'Projekt na', 'version': 'Verzia aplikácie', + 'precipitationProbabilit': 'Pravdepodobnosť zrážok', + 'apparentTemperatureMin': 'Minimálna viditeľná teplota', + 'apparentTemperatureMax': 'Maximálna viditeľná teplota', }, 'nl_NL': { 'start': 'Beginnen', @@ -947,6 +974,9 @@ class Translation extends Translations { 'northwest': 'Noordwest', 'project': 'Project op', 'version': 'Applicatieversie', + 'precipitationProbabilit': 'Kans op neerslag', + 'apparentTemperatureMin': 'Minimum schijnbare temperatuur', + 'apparentTemperatureMax': 'Maximale schijnbare temperatuur', }, }; } From 8ec29eeb1d966bbc934e44e9ce91d508e564c53e Mon Sep 17 00:00:00 2001 From: Yoshi Date: Wed, 26 Apr 2023 00:39:40 +0300 Subject: [PATCH 012/246] fix ui card daily --- lib/app/controller/controller.dart | 5 +- lib/app/widgets/daily_card.dart | 100 ++++++++------------- lib/app/widgets/status.dart | 42 +++++++++ lib/app/widgets/status_im_fa.dart | 4 +- lib/app/widgets/weather_more.dart | 140 ++++++++++++++++++++++------- pubspec.lock | 8 ++ pubspec.yaml | 5 +- 7 files changed, 205 insertions(+), 99 deletions(-) diff --git a/lib/app/controller/controller.dart b/lib/app/controller/controller.dart index 6094bf3..0ddef76 100644 --- a/lib/app/controller/controller.dart +++ b/lib/app/controller/controller.dart @@ -53,7 +53,10 @@ class LocationController extends GetxController { 'Location permissions are permanently denied, we cannot request permissions.'); } return await Geolocator.getCurrentPosition( - desiredAccuracy: LocationAccuracy.high); + desiredAccuracy: LocationAccuracy.medium, + forceAndroidLocationManager: true, + timeLimit: const Duration(seconds: 30), + ); } Future setLocation() async { diff --git a/lib/app/widgets/daily_card.dart b/lib/app/widgets/daily_card.dart index 406ee0e..11f54ab 100644 --- a/lib/app/widgets/daily_card.dart +++ b/lib/app/widgets/daily_card.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_glow/flutter_glow.dart'; import 'package:get/get.dart'; import 'package:intl/intl.dart'; import 'package:rain/app/widgets/desc.dart'; @@ -41,74 +42,49 @@ class DailyCard extends StatelessWidget { final status = Status(); final statusImFa = StatusImFa(); - return Padding( - padding: const EdgeInsets.symmetric(horizontal: 10), + return Container( + margin: const EdgeInsets.symmetric(horizontal: 10), child: Column( children: [ - Text( - DateFormat.MMMMEEEEd(locale?.languageCode).format(timeDaily!), - style: context.theme.textTheme.titleLarge, - ), - Container( - margin: const EdgeInsets.symmetric(vertical: 15), - padding: const EdgeInsets.symmetric( - horizontal: 15, - vertical: 10, - ), - decoration: BoxDecoration( - color: context.theme.colorScheme.primaryContainer, - borderRadius: const BorderRadius.all( - Radius.circular(20), + Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const SizedBox(height: 15), + Image( + image: AssetImage( + status.getImageNowDaily(weathercodeDaily!, timeDaily!)), + fit: BoxFit.fill, + height: 200, ), - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: Row( - children: [ - Image.asset( - status.getImage7Day(weathercodeDaily!), - scale: 3, - ), - const SizedBox(width: 5), - Expanded( - child: Text( - status.getText(weathercodeDaily!), - style: context.theme.textTheme.labelLarge - ?.copyWith(fontSize: 16), - overflow: TextOverflow.ellipsis, - ), - ), - ], - ), + const SizedBox(height: 10), + GlowText( + '${statusImFa.getDegree(temperature2MMin!.round())} / ${statusImFa.getDegree(temperature2MMax!.round())}', + style: context.theme.textTheme.titleLarge?.copyWith( + fontSize: 30, + fontWeight: FontWeight.w800, ), - Row( - children: [ - Text( - statusImFa.getDegree(temperature2MMin!.round()), - style: context.theme.textTheme.labelLarge - ?.copyWith(fontSize: 16), - ), - Text( - ' / ', - style: context.theme.textTheme.bodyMedium?.copyWith( - color: Colors.grey, - ), - ), - Text( - statusImFa.getDegree(temperature2MMax!.round()), - style: context.theme.textTheme.bodyMedium - ?.copyWith(fontSize: 16), - ), - ], + ), + const SizedBox(height: 5), + Text( + status.getText(weathercodeDaily!), + style: context.theme.textTheme.titleLarge, + ), + const SizedBox(height: 5), + Text( + DateFormat.MMMMEEEEd(locale?.languageCode).format(timeDaily!), + style: context.theme.textTheme.labelLarge?.copyWith( + color: Colors.grey, + fontSize: 16, ), - ], - ), + ), + ], ), - SunsetSunrise( - timeSunrise: sunrise!, - timeSunset: sunset!, + Padding( + padding: const EdgeInsets.only(top: 15), + child: SunsetSunrise( + timeSunrise: sunrise!, + timeSunset: sunset!, + ), ), Container( margin: const EdgeInsets.only(bottom: 15), diff --git a/lib/app/widgets/status.dart b/lib/app/widgets/status.dart index 7d40b7c..f76fe2a 100644 --- a/lib/app/widgets/status.dart +++ b/lib/app/widgets/status.dart @@ -65,6 +65,48 @@ class Status { } } + String getImageNowDaily(int weather, DateTime time) { + switch (weather) { + case 0: + return 'assets/images/sun.png'; + case 1: + case 2: + case 3: + return 'assets/images/cloud.png'; + case 45: + case 48: + return 'assets/images/fog.png'; + case 51: + case 53: + case 55: + case 56: + case 57: + case 61: + case 63: + case 65: + case 66: + case 67: + case 80: + case 81: + case 82: + return 'assets/images/rain.png'; + case 71: + case 73: + case 75: + case 77: + case 85: + case 86: + return 'assets/images/snow.png'; + case 95: + return 'assets/images/thunder.png'; + case 96: + case 99: + return 'assets/images/storm.png'; + default: + return ''; + } + } + String getImageToday( int weather, String time, String timeDay, String timeNight) { final currentTime = DateTime.parse(time); diff --git a/lib/app/widgets/status_im_fa.dart b/lib/app/widgets/status_im_fa.dart index cc2d509..d0c736e 100644 --- a/lib/app/widgets/status_im_fa.dart +++ b/lib/app/widgets/status_im_fa.dart @@ -51,7 +51,7 @@ class StatusImFa { String getTimeFormat(String time) { switch (settings.timeformat) { case '12': - return DateFormat.j().format(DateTime.tryParse(time)!); + return DateFormat.jm().format(DateTime.tryParse(time)!); case '24': return DateFormat.Hm().format(DateTime.tryParse(time)!); default: @@ -62,7 +62,7 @@ class StatusImFa { String getTimeFormatTz(TZDateTime time) { switch (settings.timeformat) { case '12': - return DateFormat.j().format(time); + return DateFormat.jm().format(time); case '24': return DateFormat.Hm().format(time); default: diff --git a/lib/app/widgets/weather_more.dart b/lib/app/widgets/weather_more.dart index 57e0399..b813943 100644 --- a/lib/app/widgets/weather_more.dart +++ b/lib/app/widgets/weather_more.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:iconsax/iconsax.dart'; +import 'package:nested_scroll_views/material.dart'; import 'package:rain/app/data/weather.dart'; import 'package:rain/app/widgets/daily_card.dart'; @@ -18,6 +19,21 @@ class WeatherMore extends StatefulWidget { } class _WeatherMoreState extends State { + late PageController pageController; + int pageIndex = 0; + + @override + void initState() { + pageController = PageController(initialPage: 0); + super.initState(); + } + + @override + void dispose() { + pageController.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -43,38 +59,98 @@ class _WeatherMoreState extends State { style: context.theme.textTheme.titleLarge, ), ), - body: ListView.builder( - itemCount: widget.mainWeatherCache?.timeDaily!.length ?? - widget.weatherCard?.timeDaily!.length, - itemBuilder: (context, index) => DailyCard( - timeDaily: widget.mainWeatherCache?.timeDaily![index] ?? - widget.weatherCard?.timeDaily![index], - weathercodeDaily: widget.mainWeatherCache?.weathercodeDaily![index] ?? - widget.weatherCard?.weathercodeDaily![index], - temperature2MMax: widget.mainWeatherCache?.temperature2MMax![index] ?? - widget.weatherCard?.temperature2MMax![index], - temperature2MMin: widget.mainWeatherCache?.temperature2MMin![index] ?? - widget.weatherCard?.temperature2MMin![index], - apparentTemperatureMax: - widget.mainWeatherCache?.apparentTemperatureMax![index] ?? - widget.weatherCard?.apparentTemperatureMax![index], - apparentTemperatureMin: - widget.mainWeatherCache?.apparentTemperatureMin![index] ?? - widget.weatherCard?.apparentTemperatureMin![index], - sunrise: widget.mainWeatherCache?.sunrise![index] ?? - widget.weatherCard?.sunrise![index], - sunset: widget.mainWeatherCache?.sunset![index] ?? - widget.weatherCard?.sunset![index], - precipitationSum: widget.mainWeatherCache?.precipitationSum![index] ?? - widget.weatherCard?.precipitationSum![index], - precipitationProbabilityMax: - widget.mainWeatherCache?.precipitationProbabilityMax![index] ?? - widget.weatherCard?.precipitationProbabilityMax![index], - windspeed10MMax: widget.mainWeatherCache?.windspeed10MMax![index] ?? - widget.weatherCard?.windspeed10MMax![index], - windgusts10MMax: widget.mainWeatherCache?.windgusts10MMax![index] ?? - widget.weatherCard?.windgusts10MMax![index], - ), + body: Row( + children: [ + Expanded( + child: NestedPageView.builder( + scrollDirection: Axis.vertical, + controller: pageController, + onPageChanged: (index) { + setState(() { + pageIndex = index; + }); + }, + itemCount: widget.mainWeatherCache?.timeDaily!.length ?? + widget.weatherCard?.timeDaily!.length, + itemBuilder: (context, index) => SingleChildScrollView( + child: DailyCard( + timeDaily: widget.mainWeatherCache?.timeDaily![index] ?? + widget.weatherCard?.timeDaily![index], + weathercodeDaily: + widget.mainWeatherCache?.weathercodeDaily![index] ?? + widget.weatherCard?.weathercodeDaily![index], + temperature2MMax: + widget.mainWeatherCache?.temperature2MMax![index] ?? + widget.weatherCard?.temperature2MMax![index], + temperature2MMin: + widget.mainWeatherCache?.temperature2MMin![index] ?? + widget.weatherCard?.temperature2MMin![index], + apparentTemperatureMax: + widget.mainWeatherCache?.apparentTemperatureMax![index] ?? + widget.weatherCard?.apparentTemperatureMax![index], + apparentTemperatureMin: + widget.mainWeatherCache?.apparentTemperatureMin![index] ?? + widget.weatherCard?.apparentTemperatureMin![index], + sunrise: widget.mainWeatherCache?.sunrise![index] ?? + widget.weatherCard?.sunrise![index], + sunset: widget.mainWeatherCache?.sunset![index] ?? + widget.weatherCard?.sunset![index], + precipitationSum: + widget.mainWeatherCache?.precipitationSum![index] ?? + widget.weatherCard?.precipitationSum![index], + precipitationProbabilityMax: widget.mainWeatherCache + ?.precipitationProbabilityMax![index] ?? + widget.weatherCard?.precipitationProbabilityMax![index], + windspeed10MMax: + widget.mainWeatherCache?.windspeed10MMax![index] ?? + widget.weatherCard?.windspeed10MMax![index], + windgusts10MMax: + widget.mainWeatherCache?.windgusts10MMax![index] ?? + widget.weatherCard?.windgusts10MMax![index], + ), + ), + ), + ), + Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + ...List.generate( + widget.mainWeatherCache?.timeDaily!.length ?? + widget.weatherCard!.timeDaily!.length, + (index) => Padding( + padding: const EdgeInsets.symmetric(vertical: 3), + child: DotIndicator( + isActive: index == pageIndex, + ), + ), + ), + ], + ), + ], + ), + ); + } +} + +class DotIndicator extends StatelessWidget { + const DotIndicator({ + Key? key, + this.isActive = false, + }) : super(key: key); + + final bool isActive; + + @override + Widget build(BuildContext context) { + return AnimatedContainer( + duration: const Duration(milliseconds: 300), + height: 8, + width: 8, + decoration: BoxDecoration( + color: isActive + ? context.theme.dividerColor + : context.theme.colorScheme.primaryContainer, + shape: BoxShape.circle, ), ); } diff --git a/pubspec.lock b/pubspec.lock index 1bf9f08..0c197fb 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -621,6 +621,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.4" + nested_scroll_views: + dependency: "direct main" + description: + name: nested_scroll_views + sha256: "5ebbaf7d86d7cec55433532b0476aa1275cbe3298e1303d02db06b7b5e70b362" + url: "https://pub.dev" + source: hosted + version: "0.0.7" nm: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 7c1329e..1f566a1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,7 +3,7 @@ description: Weather app. publish_to: "none" -version: 1.1.8+19 +version: 1.1.9+20 environment: sdk: ">=2.19.4 <3.0.0" @@ -15,8 +15,8 @@ dependencies: sdk: flutter get: ^4.6.5 dio: ^5.1.1 - isar: ^3.1.0+1 intl: ^0.17.0 + isar: ^3.1.0+1 shimmer: ^2.0.0 iconsax: ^0.0.8 timezone: ^0.9.2 @@ -31,6 +31,7 @@ dependencies: isar_flutter_libs: ^3.1.0+1 flutter_displaymode: ^0.6.0 lat_lng_to_timezone: ^0.2.0 + nested_scroll_views: ^0.0.7 custom_navigation_bar: ^0.8.2 scrollable_positioned_list: ^0.3.5 internet_connection_checker: ^1.0.0+1 From d1d7b2cb703639f3acb69c73991a7acacb14e490 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Fri, 28 Apr 2023 20:36:30 +0300 Subject: [PATCH 013/246] added dependencies --- macos/Flutter/GeneratedPluginRegistrant.swift | 4 + pubspec.lock | 82 ++++++++++++++----- pubspec.yaml | 12 ++- 3 files changed, 73 insertions(+), 25 deletions(-) diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 884167f..c5ca839 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -7,6 +7,8 @@ import Foundation import connectivity_plus import dynamic_color +import flutter_local_notifications +import flutter_native_timezone import geolocator_apple import isar_flutter_libs import package_info_plus @@ -16,6 +18,8 @@ import url_launcher_macos func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { ConnectivityPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlugin")) DynamicColorPlugin.register(with: registry.registrar(forPlugin: "DynamicColorPlugin")) + FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin")) + FlutterNativeTimezonePlugin.register(with: registry.registrar(forPlugin: "FlutterNativeTimezonePlugin")) GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin")) IsarFlutterLibsPlugin.register(with: registry.registrar(forPlugin: "IsarFlutterLibsPlugin")) FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin")) diff --git a/pubspec.lock b/pubspec.lock index 0c197fb..ecc70b3 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -165,10 +165,10 @@ packages: dependency: "direct main" description: name: connectivity_plus - sha256: d73575bb66216738db892f72ba67dc478bd3b5490fbbcf43644b57645eabc822 + sha256: b74247fad72c171381dbe700ca17da24deac637ab6d43c343b42867acb95c991 url: "https://pub.dev" source: hosted - version: "3.0.4" + version: "3.0.6" connectivity_plus_platform_interface: dependency: transitive description: @@ -318,6 +318,30 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.1" + flutter_local_notifications: + dependency: "direct main" + description: + name: flutter_local_notifications + sha256: "67d6f528b4e71606f6ad66d26dee4a1ae653d1f7e5ded4364167c735477b6b86" + url: "https://pub.dev" + source: hosted + version: "14.0.0" + flutter_local_notifications_linux: + dependency: transitive + description: + name: flutter_local_notifications_linux + sha256: "909bb95de05a2e793503a2437146285a2f600cd0b3f826e26b870a334d8586d7" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + flutter_local_notifications_platform_interface: + dependency: transitive + description: + name: flutter_local_notifications_platform_interface + sha256: "63235c42de5b6c99846969a27ad0209c401e6b77b0498939813725b5791c107c" + url: "https://pub.dev" + source: hosted + version: "7.0.0" flutter_localizations: dependency: "direct main" description: flutter @@ -331,6 +355,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.19" + flutter_native_timezone: + dependency: "direct main" + description: + name: flutter_native_timezone + sha256: ed7bfb982f036243de1c068e269182a877100c994f05143c8b26a325e28c1b02 + url: "https://pub.dev" + source: hosted + version: "2.0.0" flutter_test: dependency: "direct dev" description: flutter @@ -453,6 +485,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.0" + home_widget: + dependency: "direct main" + description: + name: home_widget + sha256: c7a57566606ce702454f074a0b933ee156f05ea6ef1f79f4cb680a171afe59dd + url: "https://pub.dev" + source: hosted + version: "0.2.0+1" html: dependency: transitive description: @@ -497,10 +537,10 @@ packages: dependency: transitive description: name: image - sha256: "483a389d6ccb292b570c31b3a193779b1b0178e7eb571986d9a49904b6861227" + sha256: "73964e3609fb96e01e69b0924b939967c556e46c7ff05db2ea9e31019000f4ef" url: "https://pub.dev" source: hosted - version: "4.0.15" + version: "4.0.16" internet_connection_checker: dependency: "direct main" description: @@ -598,7 +638,7 @@ packages: source: hosted version: "0.12.13" material_color_utilities: - dependency: transitive + dependency: "direct main" description: name: material_color_utilities sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 @@ -649,10 +689,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: cbff87676c352d97116af6dbea05aa28c4d65eb0f6d5677a520c11a69ca9a24d + sha256: "10259b111176fba5c505b102e3a5b022b51dd97e30522e906d6922c745584745" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.2" package_info_plus_platform_interface: dependency: transitive description: @@ -681,10 +721,10 @@ packages: dependency: transitive description: name: path_provider_android - sha256: da97262be945a72270513700a92b39dd2f4a54dad55d061687e2e37a6390366a + sha256: "2cec049d282c7f13c594b4a73976b0b4f2d7a1838a6dd5aaf7bd9719196bee86" url: "https://pub.dev" source: hosted - version: "2.0.25" + version: "2.0.27" path_provider_foundation: dependency: transitive description: @@ -713,10 +753,10 @@ packages: dependency: transitive description: name: path_provider_windows - sha256: f53720498d5a543f9607db4b0e997c4b5438884de25b0f73098cc2671a51b130 + sha256: d3f80b32e83ec208ac95253e0cd4d298e104fbc63cb29c5c69edaed43b0c69d6 url: "https://pub.dev" source: hosted - version: "2.1.5" + version: "2.1.6" petitparser: dependency: transitive description: @@ -785,10 +825,10 @@ packages: dependency: "direct main" description: name: scrollable_positioned_list - sha256: ca7fcaa743db712d4f7b1580526f494d0093c77a721a65705ee51fbeac7a2bd3 + sha256: "45806e0d64aa9dcbf4ced336eabff766dd7ba734014fd71c89bc08241c02bfc5" url: "https://pub.dev" source: hosted - version: "0.3.5" + version: "0.3.6" shelf: dependency: transitive description: @@ -934,10 +974,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: a52628068d282d01a07cd86e6ba99e497aa45ce8c91159015b2416907d78e411 + sha256: "22f8db4a72be26e9e3a4aa3f194b1f7afbc76d20ec141f84be1d787db2155cbd" url: "https://pub.dev" source: hosted - version: "6.0.27" + version: "6.0.31" url_launcher_ios: dependency: transitive description: @@ -950,10 +990,10 @@ packages: dependency: transitive description: name: url_launcher_linux - sha256: "206fb8334a700ef7754d6a9ed119e7349bc830448098f21a69bf1b4ed038cabc" + sha256: "207f4ddda99b95b4d4868320a352d374b0b7e05eefad95a4a26f57da413443f5" url: "https://pub.dev" source: hosted - version: "3.0.4" + version: "3.0.5" url_launcher_macos: dependency: transitive description: @@ -982,10 +1022,10 @@ packages: dependency: transitive description: name: url_launcher_windows - sha256: a83ba3607a507758669cfafb03f9de09bf6e6280c14d9b9cb18f013e406dcacd + sha256: "254708f17f7c20a9c8c471f67d86d76d4a3f9c1591aad1e15292008aceb82771" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.6" vector_math: dependency: transitive description: @@ -1014,10 +1054,10 @@ packages: dependency: transitive description: name: win32 - sha256: a6f0236dbda0f63aa9a25ad1ff9a9d8a4eaaa5012da0dc59d21afdb1dc361ca4 + sha256: dd8f9344bc305ae2923e3d11a2a911d9a4e2c7dd6fe0ed10626d63211a69676e url: "https://pub.dev" source: hosted - version: "3.1.4" + version: "4.1.3" xdg_directories: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 1f566a1..2991146 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,7 +3,7 @@ description: Weather app. publish_to: "none" -version: 1.1.9+20 +version: 1.1.10+21 environment: sdk: ">=2.19.4 <3.0.0" @@ -25,15 +25,19 @@ dependencies: flutter_glow: ^0.3.0 url_launcher: ^6.1.10 dynamic_color: ^1.6.3 + home_widget: ^0.2.0+1 path_provider: ^2.0.14 - package_info_plus: ^3.1.0 - connectivity_plus: ^3.0.4 + package_info_plus: ^3.1.2 + connectivity_plus: ^3.0.6 isar_flutter_libs: ^3.1.0+1 flutter_displaymode: ^0.6.0 lat_lng_to_timezone: ^0.2.0 nested_scroll_views: ^0.0.7 custom_navigation_bar: ^0.8.2 - scrollable_positioned_list: ^0.3.5 + flutter_native_timezone: ^2.0.0 + material_color_utilities: ^0.2.0 + scrollable_positioned_list: ^0.3.6 + flutter_local_notifications: ^14.0.0 internet_connection_checker: ^1.0.0+1 dev_dependencies: From e2d0cc61dd92096ce6f92cbfea4895689c34c9c9 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sat, 29 Apr 2023 18:15:14 +0300 Subject: [PATCH 014/246] issue #57 && notification --- lib/app/controller/controller.dart | 5 +---- lib/app/services/notification.dart | 35 ++++++++++++++++++++++++++++++ lib/main.dart | 13 +++++++++++ pubspec.lock | 4 ++-- pubspec.yaml | 2 +- 5 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 lib/app/services/notification.dart diff --git a/lib/app/controller/controller.dart b/lib/app/controller/controller.dart index 0ddef76..6094bf3 100644 --- a/lib/app/controller/controller.dart +++ b/lib/app/controller/controller.dart @@ -53,10 +53,7 @@ class LocationController extends GetxController { 'Location permissions are permanently denied, we cannot request permissions.'); } return await Geolocator.getCurrentPosition( - desiredAccuracy: LocationAccuracy.medium, - forceAndroidLocationManager: true, - timeLimit: const Duration(seconds: 30), - ); + desiredAccuracy: LocationAccuracy.high); } Future setLocation() async { diff --git a/lib/app/services/notification.dart b/lib/app/services/notification.dart new file mode 100644 index 0000000..d731a6b --- /dev/null +++ b/lib/app/services/notification.dart @@ -0,0 +1,35 @@ +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:rain/main.dart'; +import 'package:timezone/timezone.dart' as tz; + +class NotificationShow { + Future showNotification( + int id, String title, String body, DateTime? date) async { + flutterLocalNotificationsPlugin + .resolvePlatformSpecificImplementation< + AndroidFlutterLocalNotificationsPlugin>() + ?.requestPermission(); + AndroidNotificationDetails androidNotificationDetails = + const AndroidNotificationDetails( + 'Rain', + 'DARK NIGHT', + priority: Priority.max, + importance: Importance.max, + ); + NotificationDetails notificationDetails = + NotificationDetails(android: androidNotificationDetails); + + var scheduledTime = tz.TZDateTime.from(date!, tz.local); + flutterLocalNotificationsPlugin.zonedSchedule( + id, + title, + body, + scheduledTime, + notificationDetails, + uiLocalNotificationDateInterpretation: + UILocalNotificationDateInterpretation.absoluteTime, + androidScheduleMode: AndroidScheduleMode.exactAllowWhileIdle, + payload: 'notlification-payload', + ); + } +} diff --git a/lib/main.dart b/lib/main.dart index 567add3..e607fc7 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -2,7 +2,9 @@ import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:dynamic_color/dynamic_color.dart'; import 'package:flutter/material.dart'; import 'package:flutter_displaymode/flutter_displaymode.dart'; +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:flutter_native_timezone/flutter_native_timezone.dart'; import 'package:get/get.dart'; import 'package:internet_connection_checker/internet_connection_checker.dart'; import 'package:isar/isar.dart'; @@ -14,12 +16,16 @@ import 'app/data/weather.dart'; import 'translation/translation.dart'; import 'theme/theme_controller.dart'; import 'package:timezone/data/latest_all.dart' as tz; +import 'package:timezone/timezone.dart' as tz; late Isar isar; late Settings settings; final ValueNotifier> isDeviceConnectedNotifier = ValueNotifier(InternetConnectionChecker().hasConnection); +FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = + FlutterLocalNotificationsPlugin(); + void main() async { WidgetsFlutterBinding.ensureInitialized(); await isarInit(); @@ -34,7 +40,14 @@ void main() async { isDeviceConnectedNotifier.value = Future(() => false); } }); + final String timeZoneName = await FlutterNativeTimezone.getLocalTimezone(); + const AndroidInitializationSettings initializationSettingsAndroid = + AndroidInitializationSettings('@mipmap/ic_launcher'); + const InitializationSettings initializationSettings = + InitializationSettings(android: initializationSettingsAndroid); + await flutterLocalNotificationsPlugin.initialize(initializationSettings); tz.initializeTimeZones(); + tz.setLocalLocation(tz.getLocation(timeZoneName)); runApp(MyApp()); } diff --git a/pubspec.lock b/pubspec.lock index ecc70b3..a9ff750 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -322,10 +322,10 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: "67d6f528b4e71606f6ad66d26dee4a1ae653d1f7e5ded4364167c735477b6b86" + sha256: "2876372952b65ca7f684e698eba22bda1cf581fa071dd30ba2f01900f507d0d1" url: "https://pub.dev" source: hosted - version: "14.0.0" + version: "14.0.0+1" flutter_local_notifications_linux: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 2991146..4211ab5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -37,7 +37,7 @@ dependencies: flutter_native_timezone: ^2.0.0 material_color_utilities: ^0.2.0 scrollable_positioned_list: ^0.3.6 - flutter_local_notifications: ^14.0.0 + flutter_local_notifications: ^14.0.0+1 internet_connection_checker: ^1.0.0+1 dev_dependencies: From 4a67ddf35aa52497109994414ffcae1f966514bd Mon Sep 17 00:00:00 2001 From: Yoshi Date: Wed, 3 May 2023 23:17:48 +0300 Subject: [PATCH 015/246] issue #49 --- pubspec.lock | 67 +++++++++---------- pubspec.yaml | 6 +- .../flutter/generated_plugin_registrant.cc | 3 - windows/flutter/generated_plugins.cmake | 1 - 4 files changed, 35 insertions(+), 42 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index a9ff750..f7ab047 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -29,10 +29,10 @@ packages: dependency: transitive description: name: args - sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" + sha256: c372bb384f273f0c2a8aaaa226dad84dc27c8519a691b888725dec59518ad53a url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" async: dependency: transitive description: @@ -109,10 +109,10 @@ packages: dependency: transitive description: name: built_value - sha256: "31b7c748fd4b9adf8d25d72a4c4a59ef119f12876cf414f94f8af5131d5fa2b0" + sha256: "2f17434bd5d52a26762043d6b43bb53b3acd029b4d9071a329f46d67ef297e6d" url: "https://pub.dev" source: hosted - version: "8.4.4" + version: "8.5.0" characters: dependency: transitive description: @@ -125,10 +125,10 @@ packages: dependency: transitive description: name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff url: "https://pub.dev" source: hosted - version: "2.0.2" + version: "2.0.3" cli_util: dependency: transitive description: @@ -416,51 +416,44 @@ packages: geolocator: dependency: "direct main" description: - name: geolocator - sha256: "5c23f3613f50586c0bbb2b8f970240ae66b3bd992088cf60dd5ee2e6f7dde3a8" - url: "https://pub.dev" - source: hosted - version: "9.0.2" + path: geolocator + ref: master + resolved-ref: "13e6dfee4d32ba9572e8b7e6d263ebd7ffc562db" + url: "https://gitlab.com/free2pass/flutter-geolocator-floss.git" + source: git + version: "7.6.2" geolocator_android: dependency: transitive description: name: geolocator_android - sha256: "2ba24690aee0a3e1b6b7bd47c2711a50c874e95e4c758346589d35194adf6d6a" + sha256: dde5cd786a66f29ee74abe60095b4fe99735faa52926dcac1246747a7533cf6b url: "https://pub.dev" source: hosted - version: "4.1.7" + version: "1.0.2" geolocator_apple: dependency: transitive description: name: geolocator_apple - sha256: "22b60ca3b8c0f58e6a9688ff855ee39ab813ca3f0c0609a48d282f6631266f2e" + sha256: "1e8e398cc92151d946a4bbd34e2075885333e42d35ca33e418e7ce7b0a29991e" url: "https://pub.dev" source: hosted - version: "2.2.5" + version: "1.2.2" geolocator_platform_interface: dependency: transitive description: name: geolocator_platform_interface - sha256: af4d69231452f9620718588f41acc4cb58312368716bfff2e92e770b46ce6386 + sha256: "9d6f34a8a4b704d504f34acc5e52d880a7d2caedd99739902d6319179b0336d4" url: "https://pub.dev" source: hosted - version: "4.0.7" + version: "2.3.6" geolocator_web: dependency: transitive description: name: geolocator_web - sha256: f68a122da48fcfff68bbc9846bb0b74ef651afe84a1b1f6ec20939de4d6860e1 + sha256: "0b9e0ec13ce2211085cae0055b3516c975bd6cfe2878a20c8f13611f1a259855" url: "https://pub.dev" source: hosted - version: "2.1.6" - geolocator_windows: - dependency: transitive - description: - name: geolocator_windows - sha256: f5911c88e23f48b598dd506c7c19eff0e001645bdc03bb6fecb9f4549208354d - url: "https://pub.dev" - source: hosted - version: "0.1.1" + version: "2.0.6" get: dependency: "direct main" description: @@ -497,18 +490,18 @@ packages: dependency: transitive description: name: html - sha256: "79d498e6d6761925a34ee5ea8fa6dfef38607781d2fa91e37523474282af55cb" + sha256: "58e3491f7bf0b6a4ea5110c0c688877460d1a6366731155c4a4580e7ded773e8" url: "https://pub.dev" source: hosted - version: "0.15.2" + version: "0.15.3" http: dependency: transitive description: name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" + sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2" url: "https://pub.dev" source: hosted - version: "0.13.5" + version: "0.13.6" http_multi_server: dependency: transitive description: @@ -601,10 +594,10 @@ packages: dependency: transitive description: name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 + sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467 url: "https://pub.dev" source: hosted - version: "4.8.0" + version: "4.8.1" lat_lng_to_timezone: dependency: "direct main" description: @@ -833,18 +826,18 @@ packages: dependency: transitive description: name: shelf - sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.4.1" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 + sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1" url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.4" shimmer: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 4211ab5..2953d37 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -21,7 +21,11 @@ dependencies: iconsax: ^0.0.8 timezone: ^0.9.2 geocoding: ^2.1.0 - geolocator: ^9.0.2 + geolocator: + git: + url: https://gitlab.com/free2pass/flutter-geolocator-floss.git + ref: master + path: geolocator flutter_glow: ^0.3.0 url_launcher: ^6.1.10 dynamic_color: ^1.6.3 diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index f8a9621..2452ab4 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -8,7 +8,6 @@ #include #include -#include #include #include @@ -17,8 +16,6 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin")); DynamicColorPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("DynamicColorPluginCApi")); - GeolocatorWindowsRegisterWithRegistrar( - registry->GetRegistrarForPlugin("GeolocatorWindows")); IsarFlutterLibsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("IsarFlutterLibsPlugin")); UrlLauncherWindowsRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index ca34188..79bae17 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -5,7 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST connectivity_plus dynamic_color - geolocator_windows isar_flutter_libs url_launcher_windows ) From c54398d6b02452dfa8416dfab32c4c65575f7933 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sun, 7 May 2023 13:03:24 +0300 Subject: [PATCH 016/246] issue #59, #56, #55 --- lib/app/api/api.dart | 12 +- lib/app/api/daily.dart | 10 + lib/app/controller/controller.dart | 8 + lib/app/data/weather.dart | 12 + lib/app/data/weather.g.dart | 1493 +++++++++++++++-- lib/app/modules/card_weather.dart | 258 ++- lib/app/modules/home.dart | 20 +- lib/app/modules/onboarding.dart | 1 + lib/app/modules/weather.dart | 8 +- lib/app/modules/weather_card.dart | 8 +- lib/app/widgets/card.dart | 21 +- lib/app/widgets/daily_card.dart | 338 ++-- lib/app/widgets/list_daily_card.dart | 75 + lib/app/widgets/weather_daily.dart | 182 +- lib/app/widgets/weather_more.dart | 169 +- lib/theme/theme.dart | 6 +- pubspec.lock | 81 +- pubspec.yaml | 11 +- .../flutter/generated_plugin_registrant.cc | 3 + windows/flutter/generated_plugins.cmake | 1 + 20 files changed, 2064 insertions(+), 653 deletions(-) create mode 100644 lib/app/widgets/list_daily_card.dart diff --git a/lib/app/api/api.dart b/lib/app/api/api.dart index 83108c5..7a5b11a 100644 --- a/lib/app/api/api.dart +++ b/lib/app/api/api.dart @@ -27,7 +27,7 @@ class WeatherAPI { : urlHourly = baseUrlHourly; String baseUrlDaily = - 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,precipitation_probability_max,windspeed_10m_max,windgusts_10m_max&forecast_days=10&timezone=auto'; + 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,precipitation_probability_max,windspeed_10m_max,windgusts_10m_max,uv_index_max,rain_sum,winddirection_10m_dominant&forecast_days=10&timezone=auto'; String urlDaily; settings.degrees == 'fahrenheit' ? urlDaily = '$baseUrlDaily&temperature_unit=fahrenheit' @@ -68,6 +68,10 @@ class WeatherAPI { weatherDataDaily.daily.precipitationProbabilityMax, windspeed10MMax: weatherDataDaily.daily.windspeed10MMax, windgusts10MMax: weatherDataDaily.daily.windgusts10MMax, + uvIndexMax: weatherDataDaily.daily.uvIndexMax, + rainSum: weatherDataDaily.daily.rainSum, + winddirection10MDominant: + weatherDataDaily.daily.winddirection10MDominant, timezone: weatherDataHourly.timezone, timestamp: DateTime.now(), ); @@ -121,7 +125,7 @@ class WeatherAPI { : urlHourly = baseUrlHourly; String baseUrlDaily = - 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,precipitation_probability_max,windspeed_10m_max,windgusts_10m_max&forecast_days=10&timezone=auto'; + 'latitude=$lat&longitude=$lon&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,precipitation_probability_max,windspeed_10m_max,windgusts_10m_max,uv_index_max,rain_sum,winddirection_10m_dominant&forecast_days=10&timezone=auto'; String urlDaily; settings.degrees == 'fahrenheit' ? urlDaily = '$baseUrlDaily&temperature_unit=fahrenheit' @@ -162,6 +166,10 @@ class WeatherAPI { weatherDataDaily.daily.precipitationProbabilityMax, windspeed10MMax: weatherDataDaily.daily.windspeed10MMax, windgusts10MMax: weatherDataDaily.daily.windgusts10MMax, + uvIndexMax: weatherDataDaily.daily.uvIndexMax, + rainSum: weatherDataDaily.daily.rainSum, + winddirection10MDominant: + weatherDataDaily.daily.winddirection10MDominant, lat: lat, lon: lon, city: city, diff --git a/lib/app/api/daily.dart b/lib/app/api/daily.dart index f6bd49f..ae396db 100644 --- a/lib/app/api/daily.dart +++ b/lib/app/api/daily.dart @@ -25,6 +25,9 @@ class Daily { this.precipitationProbabilityMax, this.windspeed10MMax, this.windgusts10MMax, + this.uvIndexMax, + this.rainSum, + this.winddirection10MDominant, }); List? time; @@ -39,6 +42,9 @@ class Daily { List? precipitationProbabilityMax; List? windspeed10MMax; List? windgusts10MMax; + List? uvIndexMax; + List? rainSum; + List? winddirection10MDominant; factory Daily.fromJson(Map json) => Daily( time: List.from(json["time"].map((x) => DateTime.parse(x))), @@ -61,5 +67,9 @@ class Daily { List.from(json["windspeed_10m_max"].map((x) => x)), windgusts10MMax: List.from(json["windgusts_10m_max"].map((x) => x)), + uvIndexMax: List.from(json["uv_index_max"].map((x) => x)), + rainSum: List.from(json["rain_sum"].map((x) => x)), + winddirection10MDominant: + List.from(json["winddirection_10m_dominant"].map((x) => x)), ); } diff --git a/lib/app/controller/controller.dart b/lib/app/controller/controller.dart index 6094bf3..bc6310e 100644 --- a/lib/app/controller/controller.dart +++ b/lib/app/controller/controller.dart @@ -305,6 +305,10 @@ class LocationController extends GetxController { _weatherCard.value.precipitationProbabilityMax; element.windspeed10MMax = _weatherCard.value.windspeed10MMax; element.windgusts10MMax = _weatherCard.value.windgusts10MMax; + element.uvIndexMax = _weatherCard.value.uvIndexMax; + element.rainSum = _weatherCard.value.rainSum; + element.winddirection10MDominant = + _weatherCard.value.winddirection10MDominant; element.timestamp = DateTime.now(); await isar.weatherCards.put(element); } @@ -350,6 +354,10 @@ class LocationController extends GetxController { _weatherCard.value.precipitationProbabilityMax; weatherCard.windspeed10MMax = _weatherCard.value.windspeed10MMax; weatherCard.windgusts10MMax = _weatherCard.value.windgusts10MMax; + weatherCard.uvIndexMax = _weatherCard.value.uvIndexMax; + weatherCard.rainSum = _weatherCard.value.rainSum; + weatherCard.winddirection10MDominant = + _weatherCard.value.winddirection10MDominant; weatherCard.timestamp = DateTime.now(); await isar.weatherCards.put(weatherCard); }); diff --git a/lib/app/data/weather.dart b/lib/app/data/weather.dart index acb68d3..22e8658 100644 --- a/lib/app/data/weather.dart +++ b/lib/app/data/weather.dart @@ -45,6 +45,9 @@ class MainWeatherCache { List? precipitationProbabilityMax; List? windspeed10MMax; List? windgusts10MMax; + List? uvIndexMax; + List? rainSum; + List? winddirection10MDominant; String? timezone; DateTime? timestamp; @@ -76,6 +79,9 @@ class MainWeatherCache { this.precipitationProbabilityMax, this.windspeed10MMax, this.windgusts10MMax, + this.uvIndexMax, + this.rainSum, + this.winddirection10MDominant, this.timezone, this.timestamp, }); @@ -127,6 +133,9 @@ class WeatherCard { List? precipitationProbabilityMax; List? windspeed10MMax; List? windgusts10MMax; + List? uvIndexMax; + List? rainSum; + List? winddirection10MDominant; double? lat; double? lon; String? city; @@ -162,6 +171,9 @@ class WeatherCard { this.precipitationProbabilityMax, this.windspeed10MMax, this.windgusts10MMax, + this.uvIndexMax, + this.rainSum, + this.winddirection10MDominant, this.lat, this.lon, this.city, diff --git a/lib/app/data/weather.g.dart b/lib/app/data/weather.g.dart index d71b28b..1799513 100644 --- a/lib/app/data/weather.g.dart +++ b/lib/app/data/weather.g.dart @@ -1132,103 +1132,118 @@ const MainWeatherCacheSchema = CollectionSchema( name: r'rain', type: IsarType.doubleList, ), - r'relativehumidity2M': PropertySchema( + r'rainSum': PropertySchema( id: 9, + name: r'rainSum', + type: IsarType.doubleList, + ), + r'relativehumidity2M': PropertySchema( + id: 10, name: r'relativehumidity2M', type: IsarType.longList, ), r'sunrise': PropertySchema( - id: 10, + id: 11, name: r'sunrise', type: IsarType.stringList, ), r'sunset': PropertySchema( - id: 11, + id: 12, name: r'sunset', type: IsarType.stringList, ), r'surfacePressure': PropertySchema( - id: 12, + id: 13, name: r'surfacePressure', type: IsarType.doubleList, ), r'temperature2M': PropertySchema( - id: 13, + id: 14, name: r'temperature2M', type: IsarType.doubleList, ), r'temperature2MMax': PropertySchema( - id: 14, + id: 15, name: r'temperature2MMax', type: IsarType.doubleList, ), r'temperature2MMin': PropertySchema( - id: 15, + id: 16, name: r'temperature2MMin', type: IsarType.doubleList, ), r'time': PropertySchema( - id: 16, + id: 17, name: r'time', type: IsarType.stringList, ), r'timeDaily': PropertySchema( - id: 17, + id: 18, name: r'timeDaily', type: IsarType.dateTimeList, ), r'timestamp': PropertySchema( - id: 18, + id: 19, name: r'timestamp', type: IsarType.dateTime, ), r'timezone': PropertySchema( - id: 19, + id: 20, name: r'timezone', type: IsarType.string, ), r'uvIndex': PropertySchema( - id: 20, + id: 21, name: r'uvIndex', type: IsarType.doubleList, ), + r'uvIndexMax': PropertySchema( + id: 22, + name: r'uvIndexMax', + type: IsarType.doubleList, + ), r'visibility': PropertySchema( - id: 21, + id: 23, name: r'visibility', type: IsarType.doubleList, ), r'weathercode': PropertySchema( - id: 22, + id: 24, name: r'weathercode', type: IsarType.longList, ), r'weathercodeDaily': PropertySchema( - id: 23, + id: 25, name: r'weathercodeDaily', type: IsarType.longList, ), r'winddirection10M': PropertySchema( - id: 24, + id: 26, name: r'winddirection10M', type: IsarType.longList, ), + r'winddirection10MDominant': PropertySchema( + id: 27, + name: r'winddirection10MDominant', + type: IsarType.longList, + ), r'windgusts10M': PropertySchema( - id: 25, + id: 28, name: r'windgusts10M', type: IsarType.doubleList, ), r'windgusts10MMax': PropertySchema( - id: 26, + id: 29, name: r'windgusts10MMax', type: IsarType.doubleList, ), r'windspeed10M': PropertySchema( - id: 27, + id: 30, name: r'windspeed10M', type: IsarType.doubleList, ), r'windspeed10MMax': PropertySchema( - id: 28, + id: 31, name: r'windspeed10MMax', type: IsarType.doubleList, ) @@ -1307,6 +1322,12 @@ int _mainWeatherCacheEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.rainSum; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } { final value = object.relativehumidity2M; if (value != null) { @@ -1391,6 +1412,12 @@ int _mainWeatherCacheEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.uvIndexMax; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } { final value = object.visibility; if (value != null) { @@ -1415,6 +1442,12 @@ int _mainWeatherCacheEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.winddirection10MDominant; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } { final value = object.windgusts10M; if (value != null) { @@ -1457,26 +1490,29 @@ void _mainWeatherCacheSerialize( writer.writeLongList(offsets[6], object.precipitationProbabilityMax); writer.writeDoubleList(offsets[7], object.precipitationSum); writer.writeDoubleList(offsets[8], object.rain); - writer.writeLongList(offsets[9], object.relativehumidity2M); - writer.writeStringList(offsets[10], object.sunrise); - writer.writeStringList(offsets[11], object.sunset); - writer.writeDoubleList(offsets[12], object.surfacePressure); - writer.writeDoubleList(offsets[13], object.temperature2M); - writer.writeDoubleList(offsets[14], object.temperature2MMax); - writer.writeDoubleList(offsets[15], object.temperature2MMin); - writer.writeStringList(offsets[16], object.time); - writer.writeDateTimeList(offsets[17], object.timeDaily); - writer.writeDateTime(offsets[18], object.timestamp); - writer.writeString(offsets[19], object.timezone); - writer.writeDoubleList(offsets[20], object.uvIndex); - writer.writeDoubleList(offsets[21], object.visibility); - writer.writeLongList(offsets[22], object.weathercode); - writer.writeLongList(offsets[23], object.weathercodeDaily); - writer.writeLongList(offsets[24], object.winddirection10M); - writer.writeDoubleList(offsets[25], object.windgusts10M); - writer.writeDoubleList(offsets[26], object.windgusts10MMax); - writer.writeDoubleList(offsets[27], object.windspeed10M); - writer.writeDoubleList(offsets[28], object.windspeed10MMax); + writer.writeDoubleList(offsets[9], object.rainSum); + writer.writeLongList(offsets[10], object.relativehumidity2M); + writer.writeStringList(offsets[11], object.sunrise); + writer.writeStringList(offsets[12], object.sunset); + writer.writeDoubleList(offsets[13], object.surfacePressure); + writer.writeDoubleList(offsets[14], object.temperature2M); + writer.writeDoubleList(offsets[15], object.temperature2MMax); + writer.writeDoubleList(offsets[16], object.temperature2MMin); + writer.writeStringList(offsets[17], object.time); + writer.writeDateTimeList(offsets[18], object.timeDaily); + writer.writeDateTime(offsets[19], object.timestamp); + writer.writeString(offsets[20], object.timezone); + writer.writeDoubleList(offsets[21], object.uvIndex); + writer.writeDoubleList(offsets[22], object.uvIndexMax); + writer.writeDoubleList(offsets[23], object.visibility); + writer.writeLongList(offsets[24], object.weathercode); + writer.writeLongList(offsets[25], object.weathercodeDaily); + writer.writeLongList(offsets[26], object.winddirection10M); + writer.writeLongList(offsets[27], object.winddirection10MDominant); + writer.writeDoubleList(offsets[28], object.windgusts10M); + writer.writeDoubleList(offsets[29], object.windgusts10MMax); + writer.writeDoubleList(offsets[30], object.windspeed10M); + writer.writeDoubleList(offsets[31], object.windspeed10MMax); } MainWeatherCache _mainWeatherCacheDeserialize( @@ -1495,26 +1531,29 @@ MainWeatherCache _mainWeatherCacheDeserialize( precipitationProbabilityMax: reader.readLongList(offsets[6]), precipitationSum: reader.readDoubleList(offsets[7]), rain: reader.readDoubleList(offsets[8]), - relativehumidity2M: reader.readLongList(offsets[9]), - sunrise: reader.readStringList(offsets[10]), - sunset: reader.readStringList(offsets[11]), - surfacePressure: reader.readDoubleList(offsets[12]), - temperature2M: reader.readDoubleList(offsets[13]), - temperature2MMax: reader.readDoubleList(offsets[14]), - temperature2MMin: reader.readDoubleList(offsets[15]), - time: reader.readStringList(offsets[16]), - timeDaily: reader.readDateTimeList(offsets[17]), - timestamp: reader.readDateTimeOrNull(offsets[18]), - timezone: reader.readStringOrNull(offsets[19]), - uvIndex: reader.readDoubleList(offsets[20]), - visibility: reader.readDoubleList(offsets[21]), - weathercode: reader.readLongList(offsets[22]), - weathercodeDaily: reader.readLongList(offsets[23]), - winddirection10M: reader.readLongList(offsets[24]), - windgusts10M: reader.readDoubleList(offsets[25]), - windgusts10MMax: reader.readDoubleList(offsets[26]), - windspeed10M: reader.readDoubleList(offsets[27]), - windspeed10MMax: reader.readDoubleList(offsets[28]), + rainSum: reader.readDoubleList(offsets[9]), + relativehumidity2M: reader.readLongList(offsets[10]), + sunrise: reader.readStringList(offsets[11]), + sunset: reader.readStringList(offsets[12]), + surfacePressure: reader.readDoubleList(offsets[13]), + temperature2M: reader.readDoubleList(offsets[14]), + temperature2MMax: reader.readDoubleList(offsets[15]), + temperature2MMin: reader.readDoubleList(offsets[16]), + time: reader.readStringList(offsets[17]), + timeDaily: reader.readDateTimeList(offsets[18]), + timestamp: reader.readDateTimeOrNull(offsets[19]), + timezone: reader.readStringOrNull(offsets[20]), + uvIndex: reader.readDoubleList(offsets[21]), + uvIndexMax: reader.readDoubleList(offsets[22]), + visibility: reader.readDoubleList(offsets[23]), + weathercode: reader.readLongList(offsets[24]), + weathercodeDaily: reader.readLongList(offsets[25]), + winddirection10M: reader.readLongList(offsets[26]), + winddirection10MDominant: reader.readLongList(offsets[27]), + windgusts10M: reader.readDoubleList(offsets[28]), + windgusts10MMax: reader.readDoubleList(offsets[29]), + windspeed10M: reader.readDoubleList(offsets[30]), + windspeed10MMax: reader.readDoubleList(offsets[31]), ); object.id = id; return object; @@ -1546,13 +1585,13 @@ P _mainWeatherCacheDeserializeProp

    ( case 8: return (reader.readDoubleList(offset)) as P; case 9: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 10: - return (reader.readStringList(offset)) as P; + return (reader.readLongList(offset)) as P; case 11: return (reader.readStringList(offset)) as P; case 12: - return (reader.readDoubleList(offset)) as P; + return (reader.readStringList(offset)) as P; case 13: return (reader.readDoubleList(offset)) as P; case 14: @@ -1560,31 +1599,37 @@ P _mainWeatherCacheDeserializeProp

    ( case 15: return (reader.readDoubleList(offset)) as P; case 16: - return (reader.readStringList(offset)) as P; - case 17: - return (reader.readDateTimeList(offset)) as P; - case 18: - return (reader.readDateTimeOrNull(offset)) as P; - case 19: - return (reader.readStringOrNull(offset)) as P; - case 20: return (reader.readDoubleList(offset)) as P; + case 17: + return (reader.readStringList(offset)) as P; + case 18: + return (reader.readDateTimeList(offset)) as P; + case 19: + return (reader.readDateTimeOrNull(offset)) as P; + case 20: + return (reader.readStringOrNull(offset)) as P; case 21: return (reader.readDoubleList(offset)) as P; case 22: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 23: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 24: return (reader.readLongList(offset)) as P; case 25: - return (reader.readDoubleList(offset)) as P; + return (reader.readLongList(offset)) as P; case 26: - return (reader.readDoubleList(offset)) as P; + return (reader.readLongList(offset)) as P; case 27: - return (reader.readDoubleList(offset)) as P; + return (reader.readLongList(offset)) as P; case 28: return (reader.readDoubleList(offset)) as P; + case 29: + return (reader.readDoubleList(offset)) as P; + case 30: + return (reader.readDoubleList(offset)) as P; + case 31: + return (reader.readDoubleList(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); } @@ -3277,6 +3322,179 @@ extension MainWeatherCacheQueryFilter }); } + QueryBuilder + rainSumIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'rainSum', + )); + }); + } + + QueryBuilder + rainSumIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'rainSum', + )); + }); + } + + QueryBuilder + rainSumElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'rainSum', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + rainSumElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'rainSum', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + rainSumElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'rainSum', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + rainSumElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'rainSum', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + rainSumLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'rainSum', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + rainSumIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'rainSum', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + rainSumIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'rainSum', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + rainSumLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'rainSum', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + rainSumLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'rainSum', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + rainSumLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'rainSum', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + QueryBuilder relativehumidity2MIsNull() { return QueryBuilder.apply(this, (query) { @@ -5425,6 +5643,179 @@ extension MainWeatherCacheQueryFilter }); } + QueryBuilder + uvIndexMaxIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'uvIndexMax', + )); + }); + } + + QueryBuilder + uvIndexMaxIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'uvIndexMax', + )); + }); + } + + QueryBuilder + uvIndexMaxElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'uvIndexMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + uvIndexMaxElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'uvIndexMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + uvIndexMaxElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'uvIndexMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + uvIndexMaxElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'uvIndexMax', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + uvIndexMaxLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'uvIndexMax', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + uvIndexMaxIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'uvIndexMax', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + uvIndexMaxIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'uvIndexMax', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + uvIndexMaxLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'uvIndexMax', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + uvIndexMaxLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'uvIndexMax', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + uvIndexMaxLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'uvIndexMax', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + QueryBuilder visibilityIsNull() { return QueryBuilder.apply(this, (query) { @@ -6087,6 +6478,169 @@ extension MainWeatherCacheQueryFilter }); } + QueryBuilder + winddirection10MDominantIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'winddirection10MDominant', + )); + }); + } + + QueryBuilder + winddirection10MDominantIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'winddirection10MDominant', + )); + }); + } + + QueryBuilder + winddirection10MDominantElementEqualTo(int value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'winddirection10MDominant', + value: value, + )); + }); + } + + QueryBuilder + winddirection10MDominantElementGreaterThan( + int value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'winddirection10MDominant', + value: value, + )); + }); + } + + QueryBuilder + winddirection10MDominantElementLessThan( + int value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'winddirection10MDominant', + value: value, + )); + }); + } + + QueryBuilder + winddirection10MDominantElementBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'winddirection10MDominant', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); + }); + } + + QueryBuilder + winddirection10MDominantLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'winddirection10MDominant', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + winddirection10MDominantIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'winddirection10MDominant', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + winddirection10MDominantIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'winddirection10MDominant', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + winddirection10MDominantLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'winddirection10MDominant', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + winddirection10MDominantLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'winddirection10MDominant', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + winddirection10MDominantLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'winddirection10MDominant', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + QueryBuilder windgusts10MIsNull() { return QueryBuilder.apply(this, (query) { @@ -6925,6 +7479,13 @@ extension MainWeatherCacheQueryWhereDistinct }); } + QueryBuilder + distinctByRainSum() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'rainSum'); + }); + } + QueryBuilder distinctByRelativehumidity2M() { return QueryBuilder.apply(this, (query) { @@ -7008,6 +7569,13 @@ extension MainWeatherCacheQueryWhereDistinct }); } + QueryBuilder + distinctByUvIndexMax() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'uvIndexMax'); + }); + } + QueryBuilder distinctByVisibility() { return QueryBuilder.apply(this, (query) { @@ -7036,6 +7604,13 @@ extension MainWeatherCacheQueryWhereDistinct }); } + QueryBuilder + distinctByWinddirection10MDominant() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'winddirection10MDominant'); + }); + } + QueryBuilder distinctByWindgusts10M() { return QueryBuilder.apply(this, (query) { @@ -7136,6 +7711,13 @@ extension MainWeatherCacheQueryProperty }); } + QueryBuilder?, QQueryOperations> + rainSumProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'rainSum'); + }); + } + QueryBuilder?, QQueryOperations> relativehumidity2MProperty() { return QueryBuilder.apply(this, (query) { @@ -7219,6 +7801,13 @@ extension MainWeatherCacheQueryProperty }); } + QueryBuilder?, QQueryOperations> + uvIndexMaxProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'uvIndexMax'); + }); + } + QueryBuilder?, QQueryOperations> visibilityProperty() { return QueryBuilder.apply(this, (query) { @@ -7247,6 +7836,13 @@ extension MainWeatherCacheQueryProperty }); } + QueryBuilder?, QQueryOperations> + winddirection10MDominantProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'winddirection10MDominant'); + }); + } + QueryBuilder?, QQueryOperations> windgusts10MProperty() { return QueryBuilder.apply(this, (query) { @@ -8271,103 +8867,118 @@ const WeatherCardSchema = CollectionSchema( name: r'rain', type: IsarType.doubleList, ), - r'relativehumidity2M': PropertySchema( + r'rainSum': PropertySchema( id: 13, + name: r'rainSum', + type: IsarType.doubleList, + ), + r'relativehumidity2M': PropertySchema( + id: 14, name: r'relativehumidity2M', type: IsarType.longList, ), r'sunrise': PropertySchema( - id: 14, + id: 15, name: r'sunrise', type: IsarType.stringList, ), r'sunset': PropertySchema( - id: 15, + id: 16, name: r'sunset', type: IsarType.stringList, ), r'surfacePressure': PropertySchema( - id: 16, + id: 17, name: r'surfacePressure', type: IsarType.doubleList, ), r'temperature2M': PropertySchema( - id: 17, + id: 18, name: r'temperature2M', type: IsarType.doubleList, ), r'temperature2MMax': PropertySchema( - id: 18, + id: 19, name: r'temperature2MMax', type: IsarType.doubleList, ), r'temperature2MMin': PropertySchema( - id: 19, + id: 20, name: r'temperature2MMin', type: IsarType.doubleList, ), r'time': PropertySchema( - id: 20, + id: 21, name: r'time', type: IsarType.stringList, ), r'timeDaily': PropertySchema( - id: 21, + id: 22, name: r'timeDaily', type: IsarType.dateTimeList, ), r'timestamp': PropertySchema( - id: 22, + id: 23, name: r'timestamp', type: IsarType.dateTime, ), r'timezone': PropertySchema( - id: 23, + id: 24, name: r'timezone', type: IsarType.string, ), r'uvIndex': PropertySchema( - id: 24, + id: 25, name: r'uvIndex', type: IsarType.doubleList, ), + r'uvIndexMax': PropertySchema( + id: 26, + name: r'uvIndexMax', + type: IsarType.doubleList, + ), r'visibility': PropertySchema( - id: 25, + id: 27, name: r'visibility', type: IsarType.doubleList, ), r'weathercode': PropertySchema( - id: 26, + id: 28, name: r'weathercode', type: IsarType.longList, ), r'weathercodeDaily': PropertySchema( - id: 27, + id: 29, name: r'weathercodeDaily', type: IsarType.longList, ), r'winddirection10M': PropertySchema( - id: 28, + id: 30, name: r'winddirection10M', type: IsarType.longList, ), + r'winddirection10MDominant': PropertySchema( + id: 31, + name: r'winddirection10MDominant', + type: IsarType.longList, + ), r'windgusts10M': PropertySchema( - id: 29, + id: 32, name: r'windgusts10M', type: IsarType.doubleList, ), r'windgusts10MMax': PropertySchema( - id: 30, + id: 33, name: r'windgusts10MMax', type: IsarType.doubleList, ), r'windspeed10M': PropertySchema( - id: 31, + id: 34, name: r'windspeed10M', type: IsarType.doubleList, ), r'windspeed10MMax': PropertySchema( - id: 32, + id: 35, name: r'windspeed10MMax', type: IsarType.doubleList, ) @@ -8458,6 +9069,12 @@ int _weatherCardEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.rainSum; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } { final value = object.relativehumidity2M; if (value != null) { @@ -8542,6 +9159,12 @@ int _weatherCardEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.uvIndexMax; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } { final value = object.visibility; if (value != null) { @@ -8566,6 +9189,12 @@ int _weatherCardEstimateSize( bytesCount += 3 + value.length * 8; } } + { + final value = object.winddirection10MDominant; + if (value != null) { + bytesCount += 3 + value.length * 8; + } + } { final value = object.windgusts10M; if (value != null) { @@ -8612,26 +9241,29 @@ void _weatherCardSerialize( writer.writeLongList(offsets[10], object.precipitationProbabilityMax); writer.writeDoubleList(offsets[11], object.precipitationSum); writer.writeDoubleList(offsets[12], object.rain); - writer.writeLongList(offsets[13], object.relativehumidity2M); - writer.writeStringList(offsets[14], object.sunrise); - writer.writeStringList(offsets[15], object.sunset); - writer.writeDoubleList(offsets[16], object.surfacePressure); - writer.writeDoubleList(offsets[17], object.temperature2M); - writer.writeDoubleList(offsets[18], object.temperature2MMax); - writer.writeDoubleList(offsets[19], object.temperature2MMin); - writer.writeStringList(offsets[20], object.time); - writer.writeDateTimeList(offsets[21], object.timeDaily); - writer.writeDateTime(offsets[22], object.timestamp); - writer.writeString(offsets[23], object.timezone); - writer.writeDoubleList(offsets[24], object.uvIndex); - writer.writeDoubleList(offsets[25], object.visibility); - writer.writeLongList(offsets[26], object.weathercode); - writer.writeLongList(offsets[27], object.weathercodeDaily); - writer.writeLongList(offsets[28], object.winddirection10M); - writer.writeDoubleList(offsets[29], object.windgusts10M); - writer.writeDoubleList(offsets[30], object.windgusts10MMax); - writer.writeDoubleList(offsets[31], object.windspeed10M); - writer.writeDoubleList(offsets[32], object.windspeed10MMax); + writer.writeDoubleList(offsets[13], object.rainSum); + writer.writeLongList(offsets[14], object.relativehumidity2M); + writer.writeStringList(offsets[15], object.sunrise); + writer.writeStringList(offsets[16], object.sunset); + writer.writeDoubleList(offsets[17], object.surfacePressure); + writer.writeDoubleList(offsets[18], object.temperature2M); + writer.writeDoubleList(offsets[19], object.temperature2MMax); + writer.writeDoubleList(offsets[20], object.temperature2MMin); + writer.writeStringList(offsets[21], object.time); + writer.writeDateTimeList(offsets[22], object.timeDaily); + writer.writeDateTime(offsets[23], object.timestamp); + writer.writeString(offsets[24], object.timezone); + writer.writeDoubleList(offsets[25], object.uvIndex); + writer.writeDoubleList(offsets[26], object.uvIndexMax); + writer.writeDoubleList(offsets[27], object.visibility); + writer.writeLongList(offsets[28], object.weathercode); + writer.writeLongList(offsets[29], object.weathercodeDaily); + writer.writeLongList(offsets[30], object.winddirection10M); + writer.writeLongList(offsets[31], object.winddirection10MDominant); + writer.writeDoubleList(offsets[32], object.windgusts10M); + writer.writeDoubleList(offsets[33], object.windgusts10MMax); + writer.writeDoubleList(offsets[34], object.windspeed10M); + writer.writeDoubleList(offsets[35], object.windspeed10MMax); } WeatherCard _weatherCardDeserialize( @@ -8654,26 +9286,29 @@ WeatherCard _weatherCardDeserialize( precipitationProbabilityMax: reader.readLongList(offsets[10]), precipitationSum: reader.readDoubleList(offsets[11]), rain: reader.readDoubleList(offsets[12]), - relativehumidity2M: reader.readLongList(offsets[13]), - sunrise: reader.readStringList(offsets[14]), - sunset: reader.readStringList(offsets[15]), - surfacePressure: reader.readDoubleList(offsets[16]), - temperature2M: reader.readDoubleList(offsets[17]), - temperature2MMax: reader.readDoubleList(offsets[18]), - temperature2MMin: reader.readDoubleList(offsets[19]), - time: reader.readStringList(offsets[20]), - timeDaily: reader.readDateTimeList(offsets[21]), - timestamp: reader.readDateTimeOrNull(offsets[22]), - timezone: reader.readStringOrNull(offsets[23]), - uvIndex: reader.readDoubleList(offsets[24]), - visibility: reader.readDoubleList(offsets[25]), - weathercode: reader.readLongList(offsets[26]), - weathercodeDaily: reader.readLongList(offsets[27]), - winddirection10M: reader.readLongList(offsets[28]), - windgusts10M: reader.readDoubleList(offsets[29]), - windgusts10MMax: reader.readDoubleList(offsets[30]), - windspeed10M: reader.readDoubleList(offsets[31]), - windspeed10MMax: reader.readDoubleList(offsets[32]), + rainSum: reader.readDoubleList(offsets[13]), + relativehumidity2M: reader.readLongList(offsets[14]), + sunrise: reader.readStringList(offsets[15]), + sunset: reader.readStringList(offsets[16]), + surfacePressure: reader.readDoubleList(offsets[17]), + temperature2M: reader.readDoubleList(offsets[18]), + temperature2MMax: reader.readDoubleList(offsets[19]), + temperature2MMin: reader.readDoubleList(offsets[20]), + time: reader.readStringList(offsets[21]), + timeDaily: reader.readDateTimeList(offsets[22]), + timestamp: reader.readDateTimeOrNull(offsets[23]), + timezone: reader.readStringOrNull(offsets[24]), + uvIndex: reader.readDoubleList(offsets[25]), + uvIndexMax: reader.readDoubleList(offsets[26]), + visibility: reader.readDoubleList(offsets[27]), + weathercode: reader.readLongList(offsets[28]), + weathercodeDaily: reader.readLongList(offsets[29]), + winddirection10M: reader.readLongList(offsets[30]), + winddirection10MDominant: reader.readLongList(offsets[31]), + windgusts10M: reader.readDoubleList(offsets[32]), + windgusts10MMax: reader.readDoubleList(offsets[33]), + windspeed10M: reader.readDoubleList(offsets[34]), + windspeed10MMax: reader.readDoubleList(offsets[35]), ); object.id = id; return object; @@ -8713,13 +9348,13 @@ P _weatherCardDeserializeProp

    ( case 12: return (reader.readDoubleList(offset)) as P; case 13: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 14: - return (reader.readStringList(offset)) as P; + return (reader.readLongList(offset)) as P; case 15: return (reader.readStringList(offset)) as P; case 16: - return (reader.readDoubleList(offset)) as P; + return (reader.readStringList(offset)) as P; case 17: return (reader.readDoubleList(offset)) as P; case 18: @@ -8727,31 +9362,37 @@ P _weatherCardDeserializeProp

    ( case 19: return (reader.readDoubleList(offset)) as P; case 20: - return (reader.readStringList(offset)) as P; - case 21: - return (reader.readDateTimeList(offset)) as P; - case 22: - return (reader.readDateTimeOrNull(offset)) as P; - case 23: - return (reader.readStringOrNull(offset)) as P; - case 24: return (reader.readDoubleList(offset)) as P; + case 21: + return (reader.readStringList(offset)) as P; + case 22: + return (reader.readDateTimeList(offset)) as P; + case 23: + return (reader.readDateTimeOrNull(offset)) as P; + case 24: + return (reader.readStringOrNull(offset)) as P; case 25: return (reader.readDoubleList(offset)) as P; case 26: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 27: - return (reader.readLongList(offset)) as P; + return (reader.readDoubleList(offset)) as P; case 28: return (reader.readLongList(offset)) as P; case 29: - return (reader.readDoubleList(offset)) as P; + return (reader.readLongList(offset)) as P; case 30: - return (reader.readDoubleList(offset)) as P; + return (reader.readLongList(offset)) as P; case 31: - return (reader.readDoubleList(offset)) as P; + return (reader.readLongList(offset)) as P; case 32: return (reader.readDoubleList(offset)) as P; + case 33: + return (reader.readDoubleList(offset)) as P; + case 34: + return (reader.readDoubleList(offset)) as P; + case 35: + return (reader.readDoubleList(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); } @@ -10895,6 +11536,179 @@ extension WeatherCardQueryFilter }); } + QueryBuilder + rainSumIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'rainSum', + )); + }); + } + + QueryBuilder + rainSumIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'rainSum', + )); + }); + } + + QueryBuilder + rainSumElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'rainSum', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + rainSumElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'rainSum', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + rainSumElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'rainSum', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + rainSumElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'rainSum', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + rainSumLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'rainSum', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + rainSumIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'rainSum', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + rainSumIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'rainSum', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + rainSumLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'rainSum', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + rainSumLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'rainSum', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + rainSumLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'rainSum', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + QueryBuilder relativehumidity2MIsNull() { return QueryBuilder.apply(this, (query) { @@ -13039,6 +13853,179 @@ extension WeatherCardQueryFilter }); } + QueryBuilder + uvIndexMaxIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'uvIndexMax', + )); + }); + } + + QueryBuilder + uvIndexMaxIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'uvIndexMax', + )); + }); + } + + QueryBuilder + uvIndexMaxElementEqualTo( + double value, { + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'uvIndexMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + uvIndexMaxElementGreaterThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'uvIndexMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + uvIndexMaxElementLessThan( + double value, { + bool include = false, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'uvIndexMax', + value: value, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + uvIndexMaxElementBetween( + double lower, + double upper, { + bool includeLower = true, + bool includeUpper = true, + double epsilon = Query.epsilon, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'uvIndexMax', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + epsilon: epsilon, + )); + }); + } + + QueryBuilder + uvIndexMaxLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'uvIndexMax', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + uvIndexMaxIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'uvIndexMax', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + uvIndexMaxIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'uvIndexMax', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + uvIndexMaxLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'uvIndexMax', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + uvIndexMaxLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'uvIndexMax', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + uvIndexMaxLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'uvIndexMax', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + QueryBuilder visibilityIsNull() { return QueryBuilder.apply(this, (query) { @@ -13701,6 +14688,169 @@ extension WeatherCardQueryFilter }); } + QueryBuilder + winddirection10MDominantIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'winddirection10MDominant', + )); + }); + } + + QueryBuilder + winddirection10MDominantIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'winddirection10MDominant', + )); + }); + } + + QueryBuilder + winddirection10MDominantElementEqualTo(int value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'winddirection10MDominant', + value: value, + )); + }); + } + + QueryBuilder + winddirection10MDominantElementGreaterThan( + int value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'winddirection10MDominant', + value: value, + )); + }); + } + + QueryBuilder + winddirection10MDominantElementLessThan( + int value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'winddirection10MDominant', + value: value, + )); + }); + } + + QueryBuilder + winddirection10MDominantElementBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'winddirection10MDominant', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); + }); + } + + QueryBuilder + winddirection10MDominantLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'winddirection10MDominant', + length, + true, + length, + true, + ); + }); + } + + QueryBuilder + winddirection10MDominantIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'winddirection10MDominant', + 0, + true, + 0, + true, + ); + }); + } + + QueryBuilder + winddirection10MDominantIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'winddirection10MDominant', + 0, + false, + 999999, + true, + ); + }); + } + + QueryBuilder + winddirection10MDominantLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'winddirection10MDominant', + 0, + true, + length, + include, + ); + }); + } + + QueryBuilder + winddirection10MDominantLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'winddirection10MDominant', + length, + include, + 999999, + true, + ); + }); + } + + QueryBuilder + winddirection10MDominantLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.listLength( + r'winddirection10MDominant', + lower, + includeLower, + upper, + includeUpper, + ); + }); + } + QueryBuilder windgusts10MIsNull() { return QueryBuilder.apply(this, (query) { @@ -14650,6 +15800,12 @@ extension WeatherCardQueryWhereDistinct }); } + QueryBuilder distinctByRainSum() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'rainSum'); + }); + } + QueryBuilder distinctByRelativehumidity2M() { return QueryBuilder.apply(this, (query) { @@ -14727,6 +15883,12 @@ extension WeatherCardQueryWhereDistinct }); } + QueryBuilder distinctByUvIndexMax() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'uvIndexMax'); + }); + } + QueryBuilder distinctByVisibility() { return QueryBuilder.apply(this, (query) { return query.addDistinctBy(r'visibility'); @@ -14753,6 +15915,13 @@ extension WeatherCardQueryWhereDistinct }); } + QueryBuilder + distinctByWinddirection10MDominant() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'winddirection10MDominant'); + }); + } + QueryBuilder distinctByWindgusts10M() { return QueryBuilder.apply(this, (query) { return query.addDistinctBy(r'windgusts10M'); @@ -14873,6 +16042,12 @@ extension WeatherCardQueryProperty }); } + QueryBuilder?, QQueryOperations> rainSumProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'rainSum'); + }); + } + QueryBuilder?, QQueryOperations> relativehumidity2MProperty() { return QueryBuilder.apply(this, (query) { @@ -14951,6 +16126,13 @@ extension WeatherCardQueryProperty }); } + QueryBuilder?, QQueryOperations> + uvIndexMaxProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'uvIndexMax'); + }); + } + QueryBuilder?, QQueryOperations> visibilityProperty() { return QueryBuilder.apply(this, (query) { @@ -14979,6 +16161,13 @@ extension WeatherCardQueryProperty }); } + QueryBuilder?, QQueryOperations> + winddirection10MDominantProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'winddirection10MDominant'); + }); + } + QueryBuilder?, QQueryOperations> windgusts10MProperty() { return QueryBuilder.apply(this, (query) { diff --git a/lib/app/modules/card_weather.dart b/lib/app/modules/card_weather.dart index 74784d3..49ad96d 100644 --- a/lib/app/modules/card_weather.dart +++ b/lib/app/modules/card_weather.dart @@ -5,7 +5,6 @@ import 'package:rain/app/controller/controller.dart'; import 'package:rain/app/data/weather.dart'; import 'package:rain/app/modules/weather_card.dart'; import 'package:rain/app/widgets/card.dart'; -import 'package:rain/app/widgets/create_card_weather.dart'; import 'package:rain/app/widgets/shimmer.dart'; class CardWeather extends StatefulWidget { @@ -20,148 +19,133 @@ class _CardWeatherState extends State { @override Widget build(BuildContext context) { - return Scaffold( - body: RefreshIndicator( - onRefresh: () async { - await locationController.updateCacheCard(true); - setState(() {}); - }, - child: StreamBuilder>( - stream: locationController.getWeatherCard(), - builder: (context, listData) { - switch (listData.connectionState) { - case ConnectionState.done: - default: - if (listData.hasData) { - final weatherCard = listData.data!; - if (weatherCard.isEmpty) { - return Center( - child: SingleChildScrollView( - child: Column( - children: [ - Image.asset( - 'assets/images/add_weather.png', - scale: 6, - ), - SizedBox( - width: Get.size.width * 0.8, - child: Text( - 'noWeatherCard'.tr, - textAlign: TextAlign.center, - style: context.theme.textTheme.titleMedium - ?.copyWith( - fontWeight: FontWeight.w600, - fontSize: 18, - ), + return RefreshIndicator( + onRefresh: () async { + await locationController.updateCacheCard(true); + setState(() {}); + }, + child: StreamBuilder>( + stream: locationController.getWeatherCard(), + builder: (context, listData) { + switch (listData.connectionState) { + case ConnectionState.done: + default: + if (listData.hasData) { + final weatherCard = listData.data!; + if (weatherCard.isEmpty) { + return Center( + child: SingleChildScrollView( + child: Column( + children: [ + Image.asset( + 'assets/images/add_weather.png', + scale: 6, + ), + SizedBox( + width: Get.size.width * 0.8, + child: Text( + 'noWeatherCard'.tr, + textAlign: TextAlign.center, + style: + context.theme.textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w600, + fontSize: 18, ), ), - ], - ), + ), + ], ), - ); - } - return ListView.builder( - itemCount: weatherCard.length, - itemBuilder: (context, index) { - final weatherCardList = weatherCard[index]; - return Dismissible( - key: ValueKey(weatherCardList), - direction: DismissDirection.endToStart, - background: Container( - alignment: Alignment.centerRight, - child: const Padding( - padding: EdgeInsets.only( - right: 15, - ), - child: Icon( - Iconsax.trash, - color: Colors.red, - ), - ), - ), - confirmDismiss: (DismissDirection direction) async { - return await showDialog( - context: context, - builder: (BuildContext context) { - return AlertDialog( - backgroundColor: - context.theme.colorScheme.primaryContainer, - title: Text( - "deletedCardWeather".tr, - style: context.theme.textTheme.titleLarge, - ), - content: Text("deletedCardWeatherQuery".tr, - style: context.theme.textTheme.titleMedium), - actions: [ - TextButton( - onPressed: () => Get.back(result: false), - child: Text("cancel".tr, - style: context - .theme.textTheme.titleMedium - ?.copyWith( - color: Colors.blueAccent))), - TextButton( - onPressed: () => Get.back(result: true), - child: Text("delete".tr, - style: context - .theme.textTheme.titleMedium - ?.copyWith(color: Colors.red))), - ], - ); - }, - ); - }, - onDismissed: (DismissDirection direction) async { - await locationController - .deleteCardWeather(weatherCardList); - }, - child: GestureDetector( - onTap: () => Get.to( - () => WeatherCardPage( - weatherCard: weatherCardList, - ), - transition: Transition.downToUp), - child: CardDescWeather( - time: weatherCardList.time!, - timeDaily: weatherCardList.timeDaily!, - timeDay: weatherCardList.sunrise!, - timeNight: weatherCardList.sunset!, - weather: weatherCardList.weathercode!, - degree: weatherCardList.temperature2M!, - district: weatherCardList.district!, - city: weatherCardList.city!, - timezone: weatherCardList.timezone!, - ), - ), - ); - }, - ); - } else { - return ListView.builder( - itemCount: 10, - itemBuilder: (context, index) => const MyShimmer( - hight: 110, - edgeInsetsMargin: - EdgeInsets.symmetric(vertical: 8, horizontal: 10), ), ); } - } - }, - ), - ), - floatingActionButton: FloatingActionButton( - onPressed: () => showModalBottomSheet( - enableDrag: false, - backgroundColor: context.theme.colorScheme.secondaryContainer, - context: context, - isScrollControlled: true, - builder: (BuildContext context) { - return const CreateWeatherCard(); - }, - ), - backgroundColor: context.theme.colorScheme.tertiaryContainer, - child: const Icon(Iconsax.add), + return ListView.builder( + itemCount: weatherCard.length, + itemBuilder: (context, index) { + final weatherCardList = weatherCard[index]; + return Dismissible( + key: ValueKey(weatherCardList), + direction: DismissDirection.endToStart, + background: Container( + alignment: Alignment.centerRight, + child: const Padding( + padding: EdgeInsets.only( + right: 15, + ), + child: Icon( + Iconsax.trash, + color: Colors.red, + ), + ), + ), + confirmDismiss: (DismissDirection direction) async { + return await showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + backgroundColor: + context.theme.colorScheme.primaryContainer, + title: Text( + "deletedCardWeather".tr, + style: context.theme.textTheme.titleLarge, + ), + content: Text("deletedCardWeatherQuery".tr, + style: context.theme.textTheme.titleMedium), + actions: [ + TextButton( + onPressed: () => Get.back(result: false), + child: Text("cancel".tr, + style: context + .theme.textTheme.titleMedium + ?.copyWith( + color: Colors.blueAccent))), + TextButton( + onPressed: () => Get.back(result: true), + child: Text("delete".tr, + style: context + .theme.textTheme.titleMedium + ?.copyWith(color: Colors.red))), + ], + ); + }, + ); + }, + onDismissed: (DismissDirection direction) async { + await locationController + .deleteCardWeather(weatherCardList); + }, + child: GestureDetector( + onTap: () => Get.to( + () => WeatherCardPage( + weatherCard: weatherCardList, + ), + transition: Transition.downToUp), + child: CardDescWeather( + time: weatherCardList.time!, + timeDaily: weatherCardList.timeDaily!, + timeDay: weatherCardList.sunrise!, + timeNight: weatherCardList.sunset!, + weather: weatherCardList.weathercode!, + degree: weatherCardList.temperature2M!, + district: weatherCardList.district!, + city: weatherCardList.city!, + timezone: weatherCardList.timezone!, + ), + ), + ); + }, + ); + } else { + return ListView.builder( + itemCount: 10, + itemBuilder: (context, index) => const MyShimmer( + hight: 110, + edgeInsetsMargin: + EdgeInsets.symmetric(vertical: 8, horizontal: 10), + ), + ); + } + } + }, ), ); } diff --git a/lib/app/modules/home.dart b/lib/app/modules/home.dart index 373d6fe..fb958d5 100644 --- a/lib/app/modules/home.dart +++ b/lib/app/modules/home.dart @@ -9,6 +9,7 @@ import 'package:rain/app/controller/controller.dart'; import 'package:rain/app/modules/card_weather.dart'; import 'package:rain/app/modules/settings.dart'; import 'package:rain/app/modules/weather.dart'; +import 'package:rain/app/widgets/create_card_weather.dart'; import 'package:rain/main.dart'; class HomePage extends StatefulWidget { @@ -54,11 +55,11 @@ class _HomePageState extends State { ); return Scaffold( - backgroundColor: context.theme.scaffoldBackgroundColor, + backgroundColor: context.theme.colorScheme.surface, appBar: AppBar( centerTitle: true, automaticallyImplyLeading: false, - backgroundColor: context.theme.scaffoldBackgroundColor, + backgroundColor: context.theme.colorScheme.surface, surfaceTintColor: Colors.transparent, elevation: 0, leading: Image.asset( @@ -212,6 +213,21 @@ class _HomePageState extends State { ], ), ), + floatingActionButton: tabIndex == 1 + ? FloatingActionButton( + onPressed: () => showModalBottomSheet( + enableDrag: false, + backgroundColor: context.theme.colorScheme.secondaryContainer, + context: context, + isScrollControlled: true, + builder: (BuildContext context) { + return const CreateWeatherCard(); + }, + ), + backgroundColor: context.theme.colorScheme.tertiaryContainer, + child: const Icon(Iconsax.add), + ) + : null, ); } } diff --git a/lib/app/modules/onboarding.dart b/lib/app/modules/onboarding.dart index d284ce4..e0e48c4 100644 --- a/lib/app/modules/onboarding.dart +++ b/lib/app/modules/onboarding.dart @@ -16,6 +16,7 @@ class _OnboardingPageState extends State { @override Widget build(BuildContext context) { return Scaffold( + backgroundColor: context.theme.colorScheme.surface, body: SafeArea( child: Column( children: [ diff --git a/lib/app/modules/weather.dart b/lib/app/modules/weather.dart index 799f5c8..1865070 100644 --- a/lib/app/modules/weather.dart +++ b/lib/app/modules/weather.dart @@ -176,13 +176,7 @@ class _WeatherPageState extends State { Obx( () => locationController.isLoading.isFalse ? WeatherDaily( - date: locationController.mainWeather.timeDaily!, - weather: - locationController.mainWeather.weathercodeDaily!, - minDegree: - locationController.mainWeather.temperature2MMin!, - maxDegree: - locationController.mainWeather.temperature2MMax!, + mainWeatherCache: locationController.mainWeather, onTap: () => Get.to( () => WeatherMore( mainWeatherCache: locationController.mainWeather, diff --git a/lib/app/modules/weather_card.dart b/lib/app/modules/weather_card.dart index 3ca3e57..c74dee7 100644 --- a/lib/app/modules/weather_card.dart +++ b/lib/app/modules/weather_card.dart @@ -57,10 +57,11 @@ class _WeatherCardPageState extends State { setState(() {}); }, child: Scaffold( + backgroundColor: context.theme.colorScheme.surface, appBar: AppBar( centerTitle: true, automaticallyImplyLeading: false, - backgroundColor: context.theme.scaffoldBackgroundColor, + backgroundColor: context.theme.colorScheme.surface, surfaceTintColor: Colors.transparent, elevation: 0, leading: IconButton( @@ -172,10 +173,7 @@ class _WeatherCardPageState extends State { uvIndex: widget.weatherCard.uvIndex![timeNow], ), WeatherDaily( - date: widget.weatherCard.timeDaily!, - weather: widget.weatherCard.weathercodeDaily!, - minDegree: widget.weatherCard.temperature2MMin!, - maxDegree: widget.weatherCard.temperature2MMax!, + weatherCard: widget.weatherCard, onTap: () => Get.to( () => WeatherMore( weatherCard: widget.weatherCard, diff --git a/lib/app/widgets/card.dart b/lib/app/widgets/card.dart index 6380389..b4048ef 100644 --- a/lib/app/widgets/card.dart +++ b/lib/app/widgets/card.dart @@ -93,16 +93,17 @@ class _CardDescWeatherState extends State { ), const SizedBox(height: 5), StreamBuilder( - stream: Stream.periodic(const Duration(seconds: 1)), - builder: (context, snapshot) { - return Text( - '${'time'.tr}: ${statusImFa.getTimeFormatTz(tz.TZDateTime.now(tz.getLocation(widget.timezone)))}', - style: context.theme.textTheme.titleMedium?.copyWith( - color: Colors.grey, - fontWeight: FontWeight.w400, - ), - ); - }), + stream: Stream.periodic(const Duration(seconds: 1)), + builder: (context, snapshot) { + return Text( + '${'time'.tr}: ${statusImFa.getTimeFormatTz(tz.TZDateTime.now(tz.getLocation(widget.timezone)))}', + style: context.theme.textTheme.titleMedium?.copyWith( + color: Colors.grey, + fontWeight: FontWeight.w400, + ), + ); + }, + ), ], ), ), diff --git a/lib/app/widgets/daily_card.dart b/lib/app/widgets/daily_card.dart index 11f54ab..b6a9032 100644 --- a/lib/app/widgets/daily_card.dart +++ b/lib/app/widgets/daily_card.dart @@ -1,13 +1,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_glow/flutter_glow.dart'; import 'package:get/get.dart'; +import 'package:iconsax/iconsax.dart'; import 'package:intl/intl.dart'; import 'package:rain/app/widgets/desc.dart'; +import 'package:rain/app/widgets/message.dart'; import 'package:rain/app/widgets/status.dart'; import 'package:rain/app/widgets/status_im_fa.dart'; import 'package:rain/app/widgets/sunset_sunrise.dart'; -class DailyCard extends StatelessWidget { +class DailyCard extends StatefulWidget { const DailyCard({ super.key, this.timeDaily, @@ -22,128 +24,230 @@ class DailyCard extends StatelessWidget { this.precipitationProbabilityMax, this.windspeed10MMax, this.windgusts10MMax, + this.uvIndexMax, + this.rainSum, + this.winddirection10MDominant, + required this.index, }); - final DateTime? timeDaily; - final int? weathercodeDaily; - final double? temperature2MMax; - final double? temperature2MMin; - final double? apparentTemperatureMax; - final double? apparentTemperatureMin; - final String? sunrise; - final String? sunset; - final double? precipitationSum; - final int? precipitationProbabilityMax; - final double? windspeed10MMax; - final double? windgusts10MMax; + final List? timeDaily; + final List? weathercodeDaily; + final List? temperature2MMax; + final List? temperature2MMin; + final List? apparentTemperatureMax; + final List? apparentTemperatureMin; + final List? sunrise; + final List? sunset; + final List? precipitationSum; + final List? precipitationProbabilityMax; + final List? windspeed10MMax; + final List? windgusts10MMax; + final List? uvIndexMax; + final List? rainSum; + final List? winddirection10MDominant; + final int index; + + @override + State createState() => _DailyCardState(); +} + +class _DailyCardState extends State { + final locale = Get.locale; + final status = Status(); + final statusImFa = StatusImFa(); + final message = Message(); + late PageController pageController; + int pageIndex = 0; + + @override + void initState() { + pageController = PageController(initialPage: widget.index); + super.initState(); + } + + @override + void dispose() { + pageController.dispose(); + super.dispose(); + } @override Widget build(BuildContext context) { - final locale = Get.locale; - final status = Status(); - final statusImFa = StatusImFa(); - - return Container( - margin: const EdgeInsets.symmetric(horizontal: 10), - child: Column( - children: [ - Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const SizedBox(height: 15), - Image( - image: AssetImage( - status.getImageNowDaily(weathercodeDaily!, timeDaily!)), - fit: BoxFit.fill, - height: 200, - ), - const SizedBox(height: 10), - GlowText( - '${statusImFa.getDegree(temperature2MMin!.round())} / ${statusImFa.getDegree(temperature2MMax!.round())}', - style: context.theme.textTheme.titleLarge?.copyWith( - fontSize: 30, - fontWeight: FontWeight.w800, - ), - ), - const SizedBox(height: 5), - Text( - status.getText(weathercodeDaily!), - style: context.theme.textTheme.titleLarge, - ), - const SizedBox(height: 5), - Text( - DateFormat.MMMMEEEEd(locale?.languageCode).format(timeDaily!), - style: context.theme.textTheme.labelLarge?.copyWith( - color: Colors.grey, - fontSize: 16, - ), - ), - ], + return Scaffold( + backgroundColor: context.theme.colorScheme.surface, + appBar: AppBar( + automaticallyImplyLeading: false, + backgroundColor: context.theme.colorScheme.surface, + surfaceTintColor: Colors.transparent, + elevation: 0, + centerTitle: true, + leading: IconButton( + onPressed: () { + Get.back(); + }, + icon: const Icon( + Iconsax.arrow_left_1, + size: 20, ), - Padding( - padding: const EdgeInsets.only(top: 15), - child: SunsetSunrise( - timeSunrise: sunrise!, - timeSunset: sunset!, - ), - ), - Container( - margin: const EdgeInsets.only(bottom: 15), - padding: const EdgeInsets.only(top: 20, bottom: 5), - decoration: BoxDecoration( - color: context.theme.colorScheme.primaryContainer, - borderRadius: const BorderRadius.all( - Radius.circular(20), + splashColor: Colors.transparent, + highlightColor: Colors.transparent, + ), + title: Text( + DateFormat.MMMMEEEEd(locale?.languageCode) + .format(widget.timeDaily![pageIndex]), + style: context.theme.textTheme.titleLarge, + ), + ), + body: SafeArea( + child: PageView.builder( + controller: pageController, + onPageChanged: (index) { + setState(() { + pageIndex = index; + }); + }, + itemCount: widget.timeDaily?.length, + itemBuilder: (context, index) { + return Container( + margin: const EdgeInsets.symmetric(horizontal: 10), + child: ListView( + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const SizedBox(height: 15), + Image( + image: AssetImage(status.getImageNowDaily( + widget.weathercodeDaily![index], + widget.timeDaily![index])), + fit: BoxFit.fill, + height: 200, + ), + const SizedBox(height: 10), + GlowText( + '${statusImFa.getDegree(widget.temperature2MMin![index].round())} / ${statusImFa.getDegree(widget.temperature2MMax![index].round())}', + style: context.theme.textTheme.titleLarge?.copyWith( + fontSize: 30, + fontWeight: FontWeight.w800, + ), + ), + const SizedBox(height: 5), + Text( + status.getText(widget.weathercodeDaily![index]), + style: context.theme.textTheme.titleLarge, + ), + const SizedBox(height: 5), + Text( + DateFormat.MMMMEEEEd(locale?.languageCode) + .format(widget.timeDaily![index]), + style: context.theme.textTheme.labelLarge?.copyWith( + color: Colors.grey, + fontSize: 16, + ), + ), + ], + ), + Padding( + padding: const EdgeInsets.only(top: 15), + child: SunsetSunrise( + timeSunrise: widget.sunrise![index], + timeSunset: widget.sunset![index], + ), + ), + Container( + margin: const EdgeInsets.only(bottom: 15), + padding: const EdgeInsets.only(top: 20, bottom: 5), + decoration: BoxDecoration( + color: context.theme.colorScheme.primaryContainer, + borderRadius: const BorderRadius.all( + Radius.circular(20), + ), + ), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + DescWeather( + imageName: 'assets/images/cold.png', + value: statusImFa.getDegree(widget + .apparentTemperatureMin![index] + .round()), + desc: 'apparentTemperatureMin'.tr, + ), + DescWeather( + imageName: 'assets/images/hot.png', + value: statusImFa.getDegree(widget + .apparentTemperatureMax![index] + .round()), + desc: 'apparentTemperatureMax'.tr, + ), + DescWeather( + imageName: 'assets/images/uv.png', + value: '${widget.uvIndexMax![index].round()}', + desc: 'uvIndex'.tr, + message: message.getUvIndex( + widget.uvIndexMax![index].round()), + ), + ], + ), + const SizedBox(height: 5), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + DescWeather( + imageName: 'assets/images/windsock.png', + value: + '${widget.winddirection10MDominant![index]}°', + desc: 'direction'.tr, + message: message.getDirection( + widget.winddirection10MDominant![index]), + ), + DescWeather( + imageName: 'assets/images/wind.png', + value: statusImFa.getSpeed( + widget.windspeed10MMax![index].round()), + desc: 'wind'.tr, + ), + DescWeather( + imageName: 'assets/images/windgusts.png', + value: statusImFa.getSpeed( + widget.windgusts10MMax![index].round()), + desc: 'windgusts'.tr, + ), + ], + ), + const SizedBox(height: 5), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + DescWeather( + imageName: 'assets/images/humidity.png', + value: + '${widget.precipitationProbabilityMax![index]}%', + desc: 'precipitationProbabilit'.tr, + ), + DescWeather( + imageName: 'assets/images/water.png', + value: statusImFa + .getPrecipitation(widget.rainSum![index]), + desc: 'rain'.tr, + ), + DescWeather( + imageName: 'assets/images/rainfall.png', + value: statusImFa.getPrecipitation( + widget.precipitationSum![index]), + desc: 'precipitation'.tr, + ), + ], + ), + ], + ), + ), + ], ), - ), - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - DescWeather( - imageName: 'assets/images/humidity.png', - value: '$precipitationProbabilityMax%', - desc: 'precipitationProbabilit'.tr, - ), - DescWeather( - imageName: 'assets/images/wind.png', - value: statusImFa.getSpeed(windspeed10MMax!.round()), - desc: 'wind'.tr, - ), - DescWeather( - imageName: 'assets/images/windgusts.png', - value: statusImFa.getSpeed(windgusts10MMax!.round()), - desc: 'windgusts'.tr, - ), - ], - ), - const SizedBox(height: 5), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - DescWeather( - imageName: 'assets/images/rainfall.png', - value: statusImFa.getPrecipitation(precipitationSum!), - desc: 'precipitation'.tr, - ), - DescWeather( - imageName: 'assets/images/cold.png', - value: - statusImFa.getDegree(apparentTemperatureMin!.round()), - desc: 'apparentTemperatureMin'.tr, - ), - DescWeather( - imageName: 'assets/images/hot.png', - value: - statusImFa.getDegree(apparentTemperatureMax!.round()), - desc: 'apparentTemperatureMax'.tr, - ), - ], - ), - ], - ), - ), - ], + ); + }, + ), ), ); } diff --git a/lib/app/widgets/list_daily_card.dart b/lib/app/widgets/list_daily_card.dart new file mode 100644 index 0000000..6878346 --- /dev/null +++ b/lib/app/widgets/list_daily_card.dart @@ -0,0 +1,75 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; +import 'package:rain/app/widgets/status.dart'; +import 'package:rain/app/widgets/status_im_fa.dart'; + +class ListCardDaily extends StatelessWidget { + const ListCardDaily({ + super.key, + this.timeDaily, + this.weathercodeDaily, + this.temperature2MMax, + this.temperature2MMin, + }); + final DateTime? timeDaily; + final int? weathercodeDaily; + final double? temperature2MMax; + final double? temperature2MMin; + + @override + Widget build(BuildContext context) { + final locale = Get.locale; + final status = Status(); + final statusImFa = StatusImFa(); + + return Container( + width: double.infinity, + margin: const EdgeInsets.symmetric(horizontal: 10, vertical: 8), + padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 20), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: context.theme.colorScheme.primaryContainer, + ), + child: Row( + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + '${statusImFa.getDegree(temperature2MMin!.round())} / ${statusImFa.getDegree(temperature2MMax!.round())}', + style: context.theme.textTheme.titleLarge?.copyWith( + fontSize: 22, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: 5), + Text( + DateFormat.MMMMEEEEd(locale?.languageCode).format(timeDaily!), + style: context.theme.textTheme.titleMedium?.copyWith( + color: Colors.grey, + fontWeight: FontWeight.w400, + ), + ), + const SizedBox(height: 5), + Text( + status.getText(weathercodeDaily!), + style: context.theme.textTheme.titleMedium?.copyWith( + color: Colors.grey, + fontWeight: FontWeight.w400, + ), + ), + ], + ), + ), + const SizedBox(width: 5), + Image.asset( + status.getImageNowDaily(weathercodeDaily!, timeDaily!), + scale: 6.5, + ), + ], + ), + ); + } +} diff --git a/lib/app/widgets/weather_daily.dart b/lib/app/widgets/weather_daily.dart index 7d5ea93..78f7470 100644 --- a/lib/app/widgets/weather_daily.dart +++ b/lib/app/widgets/weather_daily.dart @@ -1,22 +1,20 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:intl/intl.dart'; +import 'package:rain/app/data/weather.dart'; +import 'package:rain/app/widgets/daily_card.dart'; import 'package:rain/app/widgets/status.dart'; import 'package:rain/app/widgets/status_im_fa.dart'; class WeatherDaily extends StatefulWidget { const WeatherDaily({ super.key, - required this.date, - required this.weather, - required this.minDegree, - required this.maxDegree, + this.mainWeatherCache, + this.weatherCard, required this.onTap, }); - final List date; - final List weather; - final List minDegree; - final List maxDegree; + final MainWeatherCache? mainWeatherCache; + final WeatherCard? weatherCard; final Function() onTap; @override @@ -50,70 +48,130 @@ class _WeatherDailyState extends State { physics: const NeverScrollableScrollPhysics(), itemCount: 7, itemBuilder: (ctx, i) { - return Container( - margin: const EdgeInsets.symmetric(vertical: 12), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: Text( - DateFormat.EEEE(locale?.languageCode) - .format(widget.date[i]), - style: context.theme.textTheme.labelLarge, + return InkWell( + onTap: () => Get.to( + () => DailyCard( + timeDaily: widget.mainWeatherCache?.timeDaily ?? + widget.weatherCard?.timeDaily, + weathercodeDaily: + widget.mainWeatherCache?.weathercodeDaily ?? + widget.weatherCard?.weathercodeDaily, + temperature2MMax: + widget.mainWeatherCache?.temperature2MMax ?? + widget.weatherCard?.temperature2MMax, + temperature2MMin: + widget.mainWeatherCache?.temperature2MMin ?? + widget.weatherCard?.temperature2MMin, + apparentTemperatureMax: widget + .mainWeatherCache?.apparentTemperatureMax ?? + widget.weatherCard?.apparentTemperatureMax, + apparentTemperatureMin: widget + .mainWeatherCache?.apparentTemperatureMin ?? + widget.weatherCard?.apparentTemperatureMin, + sunrise: widget.mainWeatherCache?.sunrise ?? + widget.weatherCard?.sunrise, + sunset: widget.mainWeatherCache?.sunset ?? + widget.weatherCard?.sunset, + precipitationSum: + widget.mainWeatherCache?.precipitationSum ?? + widget.weatherCard?.precipitationSum, + precipitationProbabilityMax: widget.mainWeatherCache + ?.precipitationProbabilityMax ?? + widget.weatherCard?.precipitationProbabilityMax, + windspeed10MMax: + widget.mainWeatherCache?.windspeed10MMax ?? + widget.weatherCard?.windspeed10MMax, + windgusts10MMax: + widget.mainWeatherCache?.windgusts10MMax ?? + widget.weatherCard?.windgusts10MMax, + uvIndexMax: widget.mainWeatherCache?.uvIndexMax ?? + widget.weatherCard?.uvIndexMax, + rainSum: widget.mainWeatherCache?.rainSum! ?? + widget.weatherCard?.rainSum, + winddirection10MDominant: widget.mainWeatherCache + ?.winddirection10MDominant ?? + widget.weatherCard?.winddirection10MDominant, + index: i, + ), + transition: Transition.downToUp), + child: Container( + margin: const EdgeInsets.symmetric(vertical: 12), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Text( + DateFormat.EEEE(locale?.languageCode).format( + widget.mainWeatherCache?.timeDaily![i] ?? + widget.weatherCard!.timeDaily![i]), + style: context.theme.textTheme.labelLarge, + ), ), - ), - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Image.asset( - status.getImage7Day(widget.weather[i]), - scale: 3, - ), - const SizedBox(width: 5), - Expanded( - child: Text( - status.getText(widget.weather[i]), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + status.getImage7Day(widget.mainWeatherCache + ?.weathercodeDaily![i] ?? + widget.weatherCard!.weathercodeDaily![i]), + scale: 3, + ), + const SizedBox(width: 5), + Expanded( + child: Text( + status.getText(widget.mainWeatherCache + ?.weathercodeDaily![i] ?? + widget.weatherCard!.weathercodeDaily![i]), + style: context.theme.textTheme.labelLarge, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + ), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Text( + statusImFa.getDegree(widget + .mainWeatherCache?.temperature2MMin![i] + .round() ?? + widget.weatherCard!.temperature2MMin![i] + .round()), style: context.theme.textTheme.labelLarge, - overflow: TextOverflow.ellipsis, ), - ), - ], + Text( + ' / ', + style: context.theme.textTheme.bodyMedium + ?.copyWith( + color: Colors.grey, + ), + ), + Text( + statusImFa.getDegree(widget + .mainWeatherCache?.temperature2MMax![i] + .round() ?? + widget.weatherCard!.temperature2MMax![i] + .round()), + style: context.theme.textTheme.bodyMedium + ?.copyWith( + color: Colors.grey, + ), + ), + ], + ), ), - ), - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Text( - statusImFa.getDegree(widget.minDegree[i].round()), - style: context.theme.textTheme.labelLarge, - ), - Text( - ' / ', - style: - context.theme.textTheme.bodyMedium?.copyWith( - color: Colors.grey, - ), - ), - Text( - statusImFa.getDegree(widget.maxDegree[i].round()), - style: - context.theme.textTheme.bodyMedium?.copyWith( - color: Colors.grey, - ), - ), - ], - ), - ), - ], + ], + ), ), ); }, ), ), const Divider(), - GestureDetector( + InkWell( onTap: widget.onTap, child: Padding( padding: const EdgeInsets.symmetric(vertical: 10), diff --git a/lib/app/widgets/weather_more.dart b/lib/app/widgets/weather_more.dart index b813943..bf0e357 100644 --- a/lib/app/widgets/weather_more.dart +++ b/lib/app/widgets/weather_more.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:iconsax/iconsax.dart'; -import 'package:nested_scroll_views/material.dart'; import 'package:rain/app/data/weather.dart'; import 'package:rain/app/widgets/daily_card.dart'; +import 'package:rain/app/widgets/list_daily_card.dart'; class WeatherMore extends StatefulWidget { const WeatherMore({ @@ -19,27 +19,13 @@ class WeatherMore extends StatefulWidget { } class _WeatherMoreState extends State { - late PageController pageController; - int pageIndex = 0; - - @override - void initState() { - pageController = PageController(initialPage: 0); - super.initState(); - } - - @override - void dispose() { - pageController.dispose(); - super.dispose(); - } - @override Widget build(BuildContext context) { return Scaffold( + backgroundColor: context.theme.colorScheme.surface, appBar: AppBar( automaticallyImplyLeading: false, - backgroundColor: context.theme.scaffoldBackgroundColor, + backgroundColor: context.theme.colorScheme.surface, surfaceTintColor: Colors.transparent, elevation: 0, centerTitle: true, @@ -59,98 +45,67 @@ class _WeatherMoreState extends State { style: context.theme.textTheme.titleLarge, ), ), - body: Row( - children: [ - Expanded( - child: NestedPageView.builder( - scrollDirection: Axis.vertical, - controller: pageController, - onPageChanged: (index) { - setState(() { - pageIndex = index; - }); - }, - itemCount: widget.mainWeatherCache?.timeDaily!.length ?? - widget.weatherCard?.timeDaily!.length, - itemBuilder: (context, index) => SingleChildScrollView( - child: DailyCard( - timeDaily: widget.mainWeatherCache?.timeDaily![index] ?? - widget.weatherCard?.timeDaily![index], - weathercodeDaily: - widget.mainWeatherCache?.weathercodeDaily![index] ?? - widget.weatherCard?.weathercodeDaily![index], - temperature2MMax: - widget.mainWeatherCache?.temperature2MMax![index] ?? - widget.weatherCard?.temperature2MMax![index], - temperature2MMin: - widget.mainWeatherCache?.temperature2MMin![index] ?? - widget.weatherCard?.temperature2MMin![index], - apparentTemperatureMax: - widget.mainWeatherCache?.apparentTemperatureMax![index] ?? - widget.weatherCard?.apparentTemperatureMax![index], - apparentTemperatureMin: - widget.mainWeatherCache?.apparentTemperatureMin![index] ?? - widget.weatherCard?.apparentTemperatureMin![index], - sunrise: widget.mainWeatherCache?.sunrise![index] ?? - widget.weatherCard?.sunrise![index], - sunset: widget.mainWeatherCache?.sunset![index] ?? - widget.weatherCard?.sunset![index], - precipitationSum: - widget.mainWeatherCache?.precipitationSum![index] ?? - widget.weatherCard?.precipitationSum![index], - precipitationProbabilityMax: widget.mainWeatherCache - ?.precipitationProbabilityMax![index] ?? - widget.weatherCard?.precipitationProbabilityMax![index], - windspeed10MMax: - widget.mainWeatherCache?.windspeed10MMax![index] ?? - widget.weatherCard?.windspeed10MMax![index], - windgusts10MMax: - widget.mainWeatherCache?.windgusts10MMax![index] ?? - widget.weatherCard?.windgusts10MMax![index], - ), - ), - ), - ), - Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - ...List.generate( - widget.mainWeatherCache?.timeDaily!.length ?? - widget.weatherCard!.timeDaily!.length, - (index) => Padding( - padding: const EdgeInsets.symmetric(vertical: 3), - child: DotIndicator( - isActive: index == pageIndex, + body: ListView.builder( + itemCount: widget.mainWeatherCache?.timeDaily!.length ?? + widget.weatherCard?.timeDaily!.length, + itemBuilder: (context, index) => GestureDetector( + onTap: () => Get.to( + () => DailyCard( + timeDaily: widget.mainWeatherCache?.timeDaily ?? + widget.weatherCard?.timeDaily, + weathercodeDaily: + widget.mainWeatherCache?.weathercodeDaily ?? + widget.weatherCard?.weathercodeDaily, + temperature2MMax: + widget.mainWeatherCache?.temperature2MMax ?? + widget.weatherCard?.temperature2MMax, + temperature2MMin: + widget.mainWeatherCache?.temperature2MMin ?? + widget.weatherCard?.temperature2MMin, + apparentTemperatureMax: + widget.mainWeatherCache?.apparentTemperatureMax ?? + widget.weatherCard?.apparentTemperatureMax, + apparentTemperatureMin: + widget.mainWeatherCache?.apparentTemperatureMin ?? + widget.weatherCard?.apparentTemperatureMin, + sunrise: widget.mainWeatherCache?.sunrise ?? + widget.weatherCard?.sunrise, + sunset: widget.mainWeatherCache?.sunset ?? + widget.weatherCard?.sunset, + precipitationSum: + widget.mainWeatherCache?.precipitationSum ?? + widget.weatherCard?.precipitationSum, + precipitationProbabilityMax: + widget.mainWeatherCache?.precipitationProbabilityMax ?? + widget.weatherCard?.precipitationProbabilityMax, + windspeed10MMax: widget.mainWeatherCache?.windspeed10MMax ?? + widget.weatherCard?.windspeed10MMax, + windgusts10MMax: widget.mainWeatherCache?.windgusts10MMax ?? + widget.weatherCard?.windgusts10MMax, + uvIndexMax: widget.mainWeatherCache?.uvIndexMax ?? + widget.weatherCard?.uvIndexMax, + rainSum: widget.mainWeatherCache?.rainSum ?? + widget.weatherCard?.rainSum, + winddirection10MDominant: + widget.mainWeatherCache?.winddirection10MDominant ?? + widget.weatherCard?.winddirection10MDominant, + index: index, ), - ), - ), - ], + transition: Transition.downToUp), + child: ListCardDaily( + timeDaily: widget.mainWeatherCache?.timeDaily![index] ?? + widget.weatherCard?.timeDaily![index], + weathercodeDaily: + widget.mainWeatherCache?.weathercodeDaily![index] ?? + widget.weatherCard?.weathercodeDaily![index], + temperature2MMax: + widget.mainWeatherCache?.temperature2MMax![index] ?? + widget.weatherCard?.temperature2MMax![index], + temperature2MMin: + widget.mainWeatherCache?.temperature2MMin![index] ?? + widget.weatherCard?.temperature2MMin![index], ), - ], - ), - ); - } -} - -class DotIndicator extends StatelessWidget { - const DotIndicator({ - Key? key, - this.isActive = false, - }) : super(key: key); - - final bool isActive; - - @override - Widget build(BuildContext context) { - return AnimatedContainer( - duration: const Duration(milliseconds: 300), - height: 8, - width: 8, - decoration: BoxDecoration( - color: isActive - ? context.theme.dividerColor - : context.theme.colorScheme.primaryContainer, - shape: BoxShape.circle, + ), ), ); } diff --git a/lib/theme/theme.dart b/lib/theme/theme.dart index 80257b7..990e8c6 100644 --- a/lib/theme/theme.dart +++ b/lib/theme/theme.dart @@ -11,6 +11,7 @@ class RainTheme { colorScheme: ColorScheme.fromSeed( seedColor: Colors.blue, brightness: Brightness.light, + surface: Colors.white, primaryContainer: const Color.fromARGB(255, 245, 245, 245), secondaryContainer: const Color.fromARGB(255, 240, 240, 240), tertiaryContainer: const Color.fromARGB(255, 250, 250, 250), @@ -21,7 +22,6 @@ class RainTheme { snackBarTheme: const SnackBarThemeData( backgroundColor: Color.fromARGB(255, 225, 225, 225), ), - scaffoldBackgroundColor: Colors.white, bottomNavigationBarTheme: baseLigth.bottomNavigationBarTheme.copyWith( backgroundColor: const Color.fromARGB(255, 250, 250, 250), ), @@ -37,6 +37,7 @@ class RainTheme { colorScheme: ColorScheme.fromSeed( seedColor: Colors.blue, brightness: Brightness.dark, + surface: Colors.black, primaryContainer: const Color.fromARGB(255, 15, 15, 15), secondaryContainer: const Color.fromARGB(255, 10, 10, 10), tertiaryContainer: const Color.fromARGB(255, 20, 20, 20), @@ -47,7 +48,6 @@ class RainTheme { snackBarTheme: const SnackBarThemeData( backgroundColor: Color.fromARGB(255, 55, 55, 55), ), - scaffoldBackgroundColor: Colors.black, bottomNavigationBarTheme: baseLigth.bottomNavigationBarTheme.copyWith( backgroundColor: const Color.fromARGB(255, 10, 10, 10), ), @@ -63,6 +63,7 @@ class RainTheme { colorScheme: ColorScheme.fromSeed( seedColor: Colors.blue, brightness: Brightness.dark, + surface: const Color.fromARGB(255, 30, 30, 30), primaryContainer: const Color.fromARGB(255, 40, 40, 40), secondaryContainer: const Color.fromARGB(255, 25, 25, 25), tertiaryContainer: const Color.fromARGB(255, 45, 45, 45), @@ -73,7 +74,6 @@ class RainTheme { snackBarTheme: const SnackBarThemeData( backgroundColor: Color.fromARGB(255, 55, 55, 55), ), - scaffoldBackgroundColor: const Color.fromARGB(255, 30, 30, 30), bottomNavigationBarTheme: baseLigth.bottomNavigationBarTheme.copyWith( backgroundColor: const Color.fromARGB(255, 28, 28, 28), ), diff --git a/pubspec.lock b/pubspec.lock index f7ab047..c6ba032 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -189,10 +189,10 @@ packages: dependency: transitive description: name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" csslib: dependency: transitive description: @@ -213,10 +213,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "6d691edde054969f0e0f26abb1b30834b5138b963793e56f69d3a9a4435e6352" + sha256: f4f1f73ab3fd2afcbcca165ee601fe980d966af6a21b5970c6c9376955c528ad url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.3.1" dartx: dependency: transitive description: @@ -416,44 +416,51 @@ packages: geolocator: dependency: "direct main" description: - path: geolocator - ref: master - resolved-ref: "13e6dfee4d32ba9572e8b7e6d263ebd7ffc562db" - url: "https://gitlab.com/free2pass/flutter-geolocator-floss.git" - source: git - version: "7.6.2" + name: geolocator + sha256: "5c23f3613f50586c0bbb2b8f970240ae66b3bd992088cf60dd5ee2e6f7dde3a8" + url: "https://pub.dev" + source: hosted + version: "9.0.2" geolocator_android: dependency: transitive description: name: geolocator_android - sha256: dde5cd786a66f29ee74abe60095b4fe99735faa52926dcac1246747a7533cf6b + sha256: "2ba24690aee0a3e1b6b7bd47c2711a50c874e95e4c758346589d35194adf6d6a" url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "4.1.7" geolocator_apple: dependency: transitive description: name: geolocator_apple - sha256: "1e8e398cc92151d946a4bbd34e2075885333e42d35ca33e418e7ce7b0a29991e" + sha256: "22b60ca3b8c0f58e6a9688ff855ee39ab813ca3f0c0609a48d282f6631266f2e" url: "https://pub.dev" source: hosted - version: "1.2.2" + version: "2.2.5" geolocator_platform_interface: dependency: transitive description: name: geolocator_platform_interface - sha256: "9d6f34a8a4b704d504f34acc5e52d880a7d2caedd99739902d6319179b0336d4" + sha256: af4d69231452f9620718588f41acc4cb58312368716bfff2e92e770b46ce6386 url: "https://pub.dev" source: hosted - version: "2.3.6" + version: "4.0.7" geolocator_web: dependency: transitive description: name: geolocator_web - sha256: "0b9e0ec13ce2211085cae0055b3516c975bd6cfe2878a20c8f13611f1a259855" + sha256: f68a122da48fcfff68bbc9846bb0b74ef651afe84a1b1f6ec20939de4d6860e1 url: "https://pub.dev" source: hosted - version: "2.0.6" + version: "2.1.6" + geolocator_windows: + dependency: transitive + description: + name: geolocator_windows + sha256: f5911c88e23f48b598dd506c7c19eff0e001645bdc03bb6fecb9f4549208354d + url: "https://pub.dev" + source: hosted + version: "0.1.1" get: dependency: "direct main" description: @@ -530,10 +537,10 @@ packages: dependency: transitive description: name: image - sha256: "73964e3609fb96e01e69b0924b939967c556e46c7ff05db2ea9e31019000f4ef" + sha256: a72242c9a0ffb65d03de1b7113bc4e189686fc07c7147b8b41811d0dd0e0d9bf url: "https://pub.dev" source: hosted - version: "4.0.16" + version: "4.0.17" internet_connection_checker: dependency: "direct main" description: @@ -654,14 +661,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.4" - nested_scroll_views: - dependency: "direct main" - description: - name: nested_scroll_views - sha256: "5ebbaf7d86d7cec55433532b0476aa1275cbe3298e1303d02db06b7b5e70b362" - url: "https://pub.dev" - source: hosted - version: "0.0.7" nm: dependency: transitive description: @@ -802,26 +801,26 @@ packages: dependency: transitive description: name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" pubspec_parse: dependency: transitive description: name: pubspec_parse - sha256: ec85d7d55339d85f44ec2b682a82fea340071e8978257e5a43e69f79e98ef50c + sha256: c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367 url: "https://pub.dev" source: hosted - version: "1.2.2" + version: "1.2.3" scrollable_positioned_list: dependency: "direct main" description: name: scrollable_positioned_list - sha256: "45806e0d64aa9dcbf4ced336eabff766dd7ba734014fd71c89bc08241c02bfc5" + sha256: "3806b84fa3da65e47146252061d20d12ce254560a6ad098d24b6bad19e079e5d" url: "https://pub.dev" source: hosted - version: "0.3.6" + version: "0.3.7" shelf: dependency: transitive description: @@ -855,10 +854,10 @@ packages: dependency: transitive description: name: source_gen - sha256: c2bea18c95cfa0276a366270afaa2850b09b4a76db95d546f3d003dcc7011298 + sha256: b20e191de6964e98032573cecb1d2b169d96ba63fdb586d24dcd1003ba7e94f6 url: "https://pub.dev" source: hosted - version: "1.2.7" + version: "1.3.0" source_span: dependency: transitive description: @@ -1047,10 +1046,10 @@ packages: dependency: transitive description: name: win32 - sha256: dd8f9344bc305ae2923e3d11a2a911d9a4e2c7dd6fe0ed10626d63211a69676e + sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c" url: "https://pub.dev" source: hosted - version: "4.1.3" + version: "4.1.4" xdg_directories: dependency: transitive description: @@ -1079,10 +1078,10 @@ packages: dependency: transitive description: name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" sdks: - dart: ">=2.19.4 <3.0.0" + dart: ">=2.19.6 <3.0.0" flutter: ">=3.4.0-17.0.pre" diff --git a/pubspec.yaml b/pubspec.yaml index 2953d37..0bdf6bf 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -6,7 +6,7 @@ publish_to: "none" version: 1.1.10+21 environment: - sdk: ">=2.19.4 <3.0.0" + sdk: ">=2.19.6 <3.0.0" dependencies: flutter: @@ -21,11 +21,7 @@ dependencies: iconsax: ^0.0.8 timezone: ^0.9.2 geocoding: ^2.1.0 - geolocator: - git: - url: https://gitlab.com/free2pass/flutter-geolocator-floss.git - ref: master - path: geolocator + geolocator: ^9.0.2 flutter_glow: ^0.3.0 url_launcher: ^6.1.10 dynamic_color: ^1.6.3 @@ -36,11 +32,10 @@ dependencies: isar_flutter_libs: ^3.1.0+1 flutter_displaymode: ^0.6.0 lat_lng_to_timezone: ^0.2.0 - nested_scroll_views: ^0.0.7 custom_navigation_bar: ^0.8.2 flutter_native_timezone: ^2.0.0 material_color_utilities: ^0.2.0 - scrollable_positioned_list: ^0.3.6 + scrollable_positioned_list: ^0.3.7 flutter_local_notifications: ^14.0.0+1 internet_connection_checker: ^1.0.0+1 diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 2452ab4..f8a9621 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -8,6 +8,7 @@ #include #include +#include #include #include @@ -16,6 +17,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin")); DynamicColorPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("DynamicColorPluginCApi")); + GeolocatorWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("GeolocatorWindows")); IsarFlutterLibsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("IsarFlutterLibsPlugin")); UrlLauncherWindowsRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 79bae17..ca34188 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -5,6 +5,7 @@ list(APPEND FLUTTER_PLUGIN_LIST connectivity_plus dynamic_color + geolocator_windows isar_flutter_libs url_launcher_windows ) From bb6f7de58692b0f8e44e9f1bc3168544c6b06805 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sun, 7 May 2023 13:30:26 +0300 Subject: [PATCH 017/246] fix --- lib/app/widgets/daily_card.dart | 108 +++++++++++++-------------- lib/app/widgets/list_daily_card.dart | 24 +++--- lib/app/widgets/weather_daily.dart | 63 ++++++++-------- lib/app/widgets/weather_more.dart | 38 +++++----- 4 files changed, 117 insertions(+), 116 deletions(-) diff --git a/lib/app/widgets/daily_card.dart b/lib/app/widgets/daily_card.dart index b6a9032..76a9052 100644 --- a/lib/app/widgets/daily_card.dart +++ b/lib/app/widgets/daily_card.dart @@ -12,38 +12,38 @@ import 'package:rain/app/widgets/sunset_sunrise.dart'; class DailyCard extends StatefulWidget { const DailyCard({ super.key, - this.timeDaily, - this.weathercodeDaily, - this.temperature2MMax, - this.temperature2MMin, - this.apparentTemperatureMax, - this.apparentTemperatureMin, - this.sunrise, - this.sunset, - this.precipitationSum, - this.precipitationProbabilityMax, - this.windspeed10MMax, - this.windgusts10MMax, - this.uvIndexMax, - this.rainSum, - this.winddirection10MDominant, + required this.timeDaily, + required this.weathercodeDaily, + required this.temperature2MMax, + required this.temperature2MMin, + required this.apparentTemperatureMax, + required this.apparentTemperatureMin, + required this.sunrise, + required this.sunset, + required this.precipitationSum, + required this.precipitationProbabilityMax, + required this.windspeed10MMax, + required this.windgusts10MMax, + required this.uvIndexMax, + required this.rainSum, + required this.winddirection10MDominant, required this.index, }); - final List? timeDaily; - final List? weathercodeDaily; - final List? temperature2MMax; - final List? temperature2MMin; - final List? apparentTemperatureMax; - final List? apparentTemperatureMin; - final List? sunrise; - final List? sunset; - final List? precipitationSum; - final List? precipitationProbabilityMax; - final List? windspeed10MMax; - final List? windgusts10MMax; - final List? uvIndexMax; - final List? rainSum; - final List? winddirection10MDominant; + final List timeDaily; + final List weathercodeDaily; + final List temperature2MMax; + final List temperature2MMin; + final List apparentTemperatureMax; + final List apparentTemperatureMin; + final List sunrise; + final List sunset; + final List precipitationSum; + final List precipitationProbabilityMax; + final List windspeed10MMax; + final List windgusts10MMax; + final List uvIndexMax; + final List rainSum; + final List winddirection10MDominant; final int index; @override @@ -93,7 +93,7 @@ class _DailyCardState extends State { ), title: Text( DateFormat.MMMMEEEEd(locale?.languageCode) - .format(widget.timeDaily![pageIndex]), + .format(widget.timeDaily[pageIndex]), style: context.theme.textTheme.titleLarge, ), ), @@ -105,7 +105,7 @@ class _DailyCardState extends State { pageIndex = index; }); }, - itemCount: widget.timeDaily?.length, + itemCount: widget.timeDaily.length, itemBuilder: (context, index) { return Container( margin: const EdgeInsets.symmetric(horizontal: 10), @@ -117,14 +117,14 @@ class _DailyCardState extends State { const SizedBox(height: 15), Image( image: AssetImage(status.getImageNowDaily( - widget.weathercodeDaily![index], - widget.timeDaily![index])), + widget.weathercodeDaily[index], + widget.timeDaily[index])), fit: BoxFit.fill, height: 200, ), const SizedBox(height: 10), GlowText( - '${statusImFa.getDegree(widget.temperature2MMin![index].round())} / ${statusImFa.getDegree(widget.temperature2MMax![index].round())}', + '${statusImFa.getDegree(widget.temperature2MMin[index].round())} / ${statusImFa.getDegree(widget.temperature2MMax[index].round())}', style: context.theme.textTheme.titleLarge?.copyWith( fontSize: 30, fontWeight: FontWeight.w800, @@ -132,13 +132,13 @@ class _DailyCardState extends State { ), const SizedBox(height: 5), Text( - status.getText(widget.weathercodeDaily![index]), + status.getText(widget.weathercodeDaily[index]), style: context.theme.textTheme.titleLarge, ), const SizedBox(height: 5), Text( DateFormat.MMMMEEEEd(locale?.languageCode) - .format(widget.timeDaily![index]), + .format(widget.timeDaily[index]), style: context.theme.textTheme.labelLarge?.copyWith( color: Colors.grey, fontSize: 16, @@ -149,8 +149,8 @@ class _DailyCardState extends State { Padding( padding: const EdgeInsets.only(top: 15), child: SunsetSunrise( - timeSunrise: widget.sunrise![index], - timeSunset: widget.sunset![index], + timeSunrise: widget.sunrise[index], + timeSunset: widget.sunset[index], ), ), Container( @@ -169,24 +169,22 @@ class _DailyCardState extends State { children: [ DescWeather( imageName: 'assets/images/cold.png', - value: statusImFa.getDegree(widget - .apparentTemperatureMin![index] - .round()), + value: statusImFa.getDegree( + widget.apparentTemperatureMin[index].round()), desc: 'apparentTemperatureMin'.tr, ), DescWeather( imageName: 'assets/images/hot.png', - value: statusImFa.getDegree(widget - .apparentTemperatureMax![index] - .round()), + value: statusImFa.getDegree( + widget.apparentTemperatureMax[index].round()), desc: 'apparentTemperatureMax'.tr, ), DescWeather( imageName: 'assets/images/uv.png', - value: '${widget.uvIndexMax![index].round()}', + value: '${widget.uvIndexMax[index].round()}', desc: 'uvIndex'.tr, - message: message.getUvIndex( - widget.uvIndexMax![index].round()), + message: message + .getUvIndex(widget.uvIndexMax[index].round()), ), ], ), @@ -197,21 +195,21 @@ class _DailyCardState extends State { DescWeather( imageName: 'assets/images/windsock.png', value: - '${widget.winddirection10MDominant![index]}°', + '${widget.winddirection10MDominant[index]}°', desc: 'direction'.tr, message: message.getDirection( - widget.winddirection10MDominant![index]), + widget.winddirection10MDominant[index]), ), DescWeather( imageName: 'assets/images/wind.png', value: statusImFa.getSpeed( - widget.windspeed10MMax![index].round()), + widget.windspeed10MMax[index].round()), desc: 'wind'.tr, ), DescWeather( imageName: 'assets/images/windgusts.png', value: statusImFa.getSpeed( - widget.windgusts10MMax![index].round()), + widget.windgusts10MMax[index].round()), desc: 'windgusts'.tr, ), ], @@ -223,19 +221,19 @@ class _DailyCardState extends State { DescWeather( imageName: 'assets/images/humidity.png', value: - '${widget.precipitationProbabilityMax![index]}%', + '${widget.precipitationProbabilityMax[index]}%', desc: 'precipitationProbabilit'.tr, ), DescWeather( imageName: 'assets/images/water.png', value: statusImFa - .getPrecipitation(widget.rainSum![index]), + .getPrecipitation(widget.rainSum[index]), desc: 'rain'.tr, ), DescWeather( imageName: 'assets/images/rainfall.png', value: statusImFa.getPrecipitation( - widget.precipitationSum![index]), + widget.precipitationSum[index]), desc: 'precipitation'.tr, ), ], diff --git a/lib/app/widgets/list_daily_card.dart b/lib/app/widgets/list_daily_card.dart index 6878346..6aca996 100644 --- a/lib/app/widgets/list_daily_card.dart +++ b/lib/app/widgets/list_daily_card.dart @@ -7,15 +7,15 @@ import 'package:rain/app/widgets/status_im_fa.dart'; class ListCardDaily extends StatelessWidget { const ListCardDaily({ super.key, - this.timeDaily, - this.weathercodeDaily, - this.temperature2MMax, - this.temperature2MMin, + required this.timeDaily, + required this.weathercodeDaily, + required this.temperature2MMax, + required this.temperature2MMin, }); - final DateTime? timeDaily; - final int? weathercodeDaily; - final double? temperature2MMax; - final double? temperature2MMin; + final DateTime timeDaily; + final int weathercodeDaily; + final double temperature2MMax; + final double temperature2MMin; @override Widget build(BuildContext context) { @@ -38,7 +38,7 @@ class ListCardDaily extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - '${statusImFa.getDegree(temperature2MMin!.round())} / ${statusImFa.getDegree(temperature2MMax!.round())}', + '${statusImFa.getDegree(temperature2MMin.round())} / ${statusImFa.getDegree(temperature2MMax.round())}', style: context.theme.textTheme.titleLarge?.copyWith( fontSize: 22, fontWeight: FontWeight.w600, @@ -46,7 +46,7 @@ class ListCardDaily extends StatelessWidget { ), const SizedBox(height: 5), Text( - DateFormat.MMMMEEEEd(locale?.languageCode).format(timeDaily!), + DateFormat.MMMMEEEEd(locale?.languageCode).format(timeDaily), style: context.theme.textTheme.titleMedium?.copyWith( color: Colors.grey, fontWeight: FontWeight.w400, @@ -54,7 +54,7 @@ class ListCardDaily extends StatelessWidget { ), const SizedBox(height: 5), Text( - status.getText(weathercodeDaily!), + status.getText(weathercodeDaily), style: context.theme.textTheme.titleMedium?.copyWith( color: Colors.grey, fontWeight: FontWeight.w400, @@ -65,7 +65,7 @@ class ListCardDaily extends StatelessWidget { ), const SizedBox(width: 5), Image.asset( - status.getImageNowDaily(weathercodeDaily!, timeDaily!), + status.getImageNowDaily(weathercodeDaily, timeDaily), scale: 6.5, ), ], diff --git a/lib/app/widgets/weather_daily.dart b/lib/app/widgets/weather_daily.dart index 78f7470..d552245 100644 --- a/lib/app/widgets/weather_daily.dart +++ b/lib/app/widgets/weather_daily.dart @@ -47,51 +47,52 @@ class _WeatherDailyState extends State { child: ListView.builder( physics: const NeverScrollableScrollPhysics(), itemCount: 7, - itemBuilder: (ctx, i) { + itemBuilder: (ctx, index) { return InkWell( onTap: () => Get.to( () => DailyCard( timeDaily: widget.mainWeatherCache?.timeDaily ?? - widget.weatherCard?.timeDaily, + widget.weatherCard!.timeDaily!, weathercodeDaily: widget.mainWeatherCache?.weathercodeDaily ?? - widget.weatherCard?.weathercodeDaily, + widget.weatherCard!.weathercodeDaily!, temperature2MMax: widget.mainWeatherCache?.temperature2MMax ?? - widget.weatherCard?.temperature2MMax, + widget.weatherCard!.temperature2MMax!, temperature2MMin: widget.mainWeatherCache?.temperature2MMin ?? - widget.weatherCard?.temperature2MMin, + widget.weatherCard!.temperature2MMin!, apparentTemperatureMax: widget .mainWeatherCache?.apparentTemperatureMax ?? - widget.weatherCard?.apparentTemperatureMax, + widget.weatherCard!.apparentTemperatureMax!, apparentTemperatureMin: widget .mainWeatherCache?.apparentTemperatureMin ?? - widget.weatherCard?.apparentTemperatureMin, + widget.weatherCard!.apparentTemperatureMin!, sunrise: widget.mainWeatherCache?.sunrise ?? - widget.weatherCard?.sunrise, + widget.weatherCard!.sunrise!, sunset: widget.mainWeatherCache?.sunset ?? - widget.weatherCard?.sunset, + widget.weatherCard!.sunset!, precipitationSum: widget.mainWeatherCache?.precipitationSum ?? - widget.weatherCard?.precipitationSum, + widget.weatherCard!.precipitationSum!, precipitationProbabilityMax: widget.mainWeatherCache ?.precipitationProbabilityMax ?? - widget.weatherCard?.precipitationProbabilityMax, + widget + .weatherCard!.precipitationProbabilityMax!, windspeed10MMax: widget.mainWeatherCache?.windspeed10MMax ?? - widget.weatherCard?.windspeed10MMax, + widget.weatherCard!.windspeed10MMax!, windgusts10MMax: widget.mainWeatherCache?.windgusts10MMax ?? - widget.weatherCard?.windgusts10MMax, + widget.weatherCard!.windgusts10MMax!, uvIndexMax: widget.mainWeatherCache?.uvIndexMax ?? - widget.weatherCard?.uvIndexMax, - rainSum: widget.mainWeatherCache?.rainSum! ?? - widget.weatherCard?.rainSum, + widget.weatherCard!.uvIndexMax!, + rainSum: widget.mainWeatherCache?.rainSum ?? + widget.weatherCard!.rainSum!, winddirection10MDominant: widget.mainWeatherCache ?.winddirection10MDominant ?? - widget.weatherCard?.winddirection10MDominant, - index: i, + widget.weatherCard!.winddirection10MDominant!, + index: index, ), transition: Transition.downToUp), child: Container( @@ -102,8 +103,8 @@ class _WeatherDailyState extends State { Expanded( child: Text( DateFormat.EEEE(locale?.languageCode).format( - widget.mainWeatherCache?.timeDaily![i] ?? - widget.weatherCard!.timeDaily![i]), + widget.mainWeatherCache?.timeDaily?[index] ?? + widget.weatherCard!.timeDaily![index]), style: context.theme.textTheme.labelLarge, ), ), @@ -113,16 +114,18 @@ class _WeatherDailyState extends State { children: [ Image.asset( status.getImage7Day(widget.mainWeatherCache - ?.weathercodeDaily![i] ?? - widget.weatherCard!.weathercodeDaily![i]), + ?.weathercodeDaily?[index] ?? + widget + .weatherCard!.weathercodeDaily![index]), scale: 3, ), const SizedBox(width: 5), Expanded( child: Text( status.getText(widget.mainWeatherCache - ?.weathercodeDaily![i] ?? - widget.weatherCard!.weathercodeDaily![i]), + ?.weathercodeDaily?[index] ?? + widget.weatherCard! + .weathercodeDaily![index]), style: context.theme.textTheme.labelLarge, overflow: TextOverflow.ellipsis, ), @@ -135,10 +138,10 @@ class _WeatherDailyState extends State { mainAxisAlignment: MainAxisAlignment.end, children: [ Text( - statusImFa.getDegree(widget - .mainWeatherCache?.temperature2MMin![i] + statusImFa.getDegree(widget.mainWeatherCache + ?.temperature2MMin?[index] .round() ?? - widget.weatherCard!.temperature2MMin![i] + widget.weatherCard!.temperature2MMin![index] .round()), style: context.theme.textTheme.labelLarge, ), @@ -150,10 +153,10 @@ class _WeatherDailyState extends State { ), ), Text( - statusImFa.getDegree(widget - .mainWeatherCache?.temperature2MMax![i] + statusImFa.getDegree(widget.mainWeatherCache + ?.temperature2MMax?[index] .round() ?? - widget.weatherCard!.temperature2MMax![i] + widget.weatherCard!.temperature2MMax![index] .round()), style: context.theme.textTheme.bodyMedium ?.copyWith( diff --git a/lib/app/widgets/weather_more.dart b/lib/app/widgets/weather_more.dart index bf0e357..974691f 100644 --- a/lib/app/widgets/weather_more.dart +++ b/lib/app/widgets/weather_more.dart @@ -52,58 +52,58 @@ class _WeatherMoreState extends State { onTap: () => Get.to( () => DailyCard( timeDaily: widget.mainWeatherCache?.timeDaily ?? - widget.weatherCard?.timeDaily, + widget.weatherCard!.timeDaily!, weathercodeDaily: widget.mainWeatherCache?.weathercodeDaily ?? - widget.weatherCard?.weathercodeDaily, + widget.weatherCard!.weathercodeDaily!, temperature2MMax: widget.mainWeatherCache?.temperature2MMax ?? - widget.weatherCard?.temperature2MMax, + widget.weatherCard!.temperature2MMax!, temperature2MMin: widget.mainWeatherCache?.temperature2MMin ?? - widget.weatherCard?.temperature2MMin, + widget.weatherCard!.temperature2MMin!, apparentTemperatureMax: widget.mainWeatherCache?.apparentTemperatureMax ?? - widget.weatherCard?.apparentTemperatureMax, + widget.weatherCard!.apparentTemperatureMax!, apparentTemperatureMin: widget.mainWeatherCache?.apparentTemperatureMin ?? - widget.weatherCard?.apparentTemperatureMin, + widget.weatherCard!.apparentTemperatureMin!, sunrise: widget.mainWeatherCache?.sunrise ?? - widget.weatherCard?.sunrise, + widget.weatherCard!.sunrise!, sunset: widget.mainWeatherCache?.sunset ?? - widget.weatherCard?.sunset, + widget.weatherCard!.sunset!, precipitationSum: widget.mainWeatherCache?.precipitationSum ?? - widget.weatherCard?.precipitationSum, + widget.weatherCard!.precipitationSum!, precipitationProbabilityMax: widget.mainWeatherCache?.precipitationProbabilityMax ?? - widget.weatherCard?.precipitationProbabilityMax, + widget.weatherCard!.precipitationProbabilityMax!, windspeed10MMax: widget.mainWeatherCache?.windspeed10MMax ?? - widget.weatherCard?.windspeed10MMax, + widget.weatherCard!.windspeed10MMax!, windgusts10MMax: widget.mainWeatherCache?.windgusts10MMax ?? - widget.weatherCard?.windgusts10MMax, + widget.weatherCard!.windgusts10MMax!, uvIndexMax: widget.mainWeatherCache?.uvIndexMax ?? - widget.weatherCard?.uvIndexMax, + widget.weatherCard!.uvIndexMax!, rainSum: widget.mainWeatherCache?.rainSum ?? - widget.weatherCard?.rainSum, + widget.weatherCard!.rainSum!, winddirection10MDominant: widget.mainWeatherCache?.winddirection10MDominant ?? - widget.weatherCard?.winddirection10MDominant, + widget.weatherCard!.winddirection10MDominant!, index: index, ), transition: Transition.downToUp), child: ListCardDaily( timeDaily: widget.mainWeatherCache?.timeDaily![index] ?? - widget.weatherCard?.timeDaily![index], + widget.weatherCard!.timeDaily![index], weathercodeDaily: widget.mainWeatherCache?.weathercodeDaily![index] ?? - widget.weatherCard?.weathercodeDaily![index], + widget.weatherCard!.weathercodeDaily![index], temperature2MMax: widget.mainWeatherCache?.temperature2MMax![index] ?? - widget.weatherCard?.temperature2MMax![index], + widget.weatherCard!.temperature2MMax![index], temperature2MMin: widget.mainWeatherCache?.temperature2MMin![index] ?? - widget.weatherCard?.temperature2MMin![index], + widget.weatherCard!.temperature2MMin![index], ), ), ), From 739ae18b759e7abccddd46f5a9c08cc412c450aa Mon Sep 17 00:00:00 2001 From: Yoshi Date: Thu, 11 May 2023 15:16:25 +0300 Subject: [PATCH 018/246] update dart --- android/build.gradle | 2 +- pubspec.lock | 118 +++++++++++++++++++++---------------------- pubspec.yaml | 18 +++---- 3 files changed, 69 insertions(+), 69 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 58a8c74..e50c3a0 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -6,7 +6,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:7.2.0' + classpath 'com.android.tools.build:gradle:7.3.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } diff --git a/pubspec.lock b/pubspec.lock index c6ba032..06bbf05 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,18 +5,18 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "8880b4cfe7b5b17d57c052a5a3a8cc1d4f546261c7cc8fbd717bd53f48db0568" + sha256: "405666cd3cf0ee0a48d21ec67e65406aad2c726d9fa58840d3375e7bdcd32a07" url: "https://pub.dev" source: hosted - version: "59.0.0" + version: "60.0.0" analyzer: dependency: transitive description: name: analyzer - sha256: a89627f49b0e70e068130a36571409726b04dab12da7e5625941d2c8ec278b96 + sha256: "1952250bd005bacb895a01bf1b4dc00e3ba1c526cf47dca54dfe24979c65f5b3" url: "https://pub.dev" source: hosted - version: "5.11.1" + version: "5.12.0" archive: dependency: transitive description: @@ -37,10 +37,10 @@ packages: dependency: transitive description: name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" url: "https://pub.dev" source: hosted - version: "2.10.0" + version: "2.11.0" boolean_selector: dependency: transitive description: @@ -53,10 +53,10 @@ packages: dependency: transitive description: name: build - sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777" + sha256: "43865b79fbb78532e4bff7c33087aa43b1d488c4fdef014eaef568af6d8016dc" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.0" build_config: dependency: transitive description: @@ -69,10 +69,10 @@ packages: dependency: transitive description: name: build_daemon - sha256: "757153e5d9cd88253cb13f28c2fb55a537dc31fefd98137549895b5beb7c6169" + sha256: "5f02d73eb2ba16483e693f80bee4f088563a820e47d1027d4cdfe62b5bb43e65" url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "4.0.0" build_resolvers: dependency: transitive description: @@ -85,18 +85,18 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727 + sha256: "87e06c939450b9b94e3e1bb2d46e0e9780adbff5500d3969f2ba2de6bbb860cb" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.4.2" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292" + sha256: "30859c90e9ddaccc484f56303931f477b1f1ba2bab74aa32ed5d6ce15870f8cf" url: "https://pub.dev" source: hosted - version: "7.2.7" + version: "7.2.8" built_collection: dependency: transitive description: @@ -117,10 +117,10 @@ packages: dependency: transitive description: name: characters - sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.3.0" checked_yaml: dependency: transitive description: @@ -157,18 +157,18 @@ packages: dependency: transitive description: name: collection - sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" url: "https://pub.dev" source: hosted - version: "1.17.0" + version: "1.17.1" connectivity_plus: dependency: "direct main" description: name: connectivity_plus - sha256: b74247fad72c171381dbe700ca17da24deac637ab6d43c343b42867acb95c991 + sha256: "45262924896ff72a8cd92b722bb7e3d5020f9e0724531a3e10e22ddae2005991" url: "https://pub.dev" source: hosted - version: "3.0.6" + version: "4.0.0" connectivity_plus_platform_interface: dependency: transitive description: @@ -237,10 +237,10 @@ packages: dependency: "direct main" description: name: dio - sha256: "0894a098594263fe1caaba3520e3016d8a855caeb010a882273189cca10f11e9" + sha256: "347d56c26d63519552ef9a569f2a593dda99a81fdbdff13c584b7197cfe05059" url: "https://pub.dev" source: hosted - version: "5.1.1" + version: "5.1.2" dynamic_color: dependency: "direct main" description: @@ -261,10 +261,10 @@ packages: dependency: transitive description: name: ffi - sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978 + sha256: ed5337a5660c506388a9f012be0288fb38b49020ce2b45fe1f8b8323fe429f99 url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.0.2" file: dependency: transitive description: @@ -481,10 +481,10 @@ packages: dependency: transitive description: name: graphs - sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2 + sha256: "772db3d53d23361d4ffcf5a9bb091cf3ee9b22f2be52cd107cd7a2683a89ba0e" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.0" home_widget: dependency: "direct main" description: @@ -553,10 +553,10 @@ packages: dependency: "direct main" description: name: intl - sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91" + sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6 url: "https://pub.dev" source: hosted - version: "0.17.0" + version: "0.18.0" io: dependency: transitive description: @@ -593,10 +593,10 @@ packages: dependency: transitive description: name: js - sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 url: "https://pub.dev" source: hosted - version: "0.6.5" + version: "0.6.7" json_annotation: dependency: transitive description: @@ -617,10 +617,10 @@ packages: dependency: transitive description: name: lints - sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" + sha256: "6b0206b0bf4f04961fc5438198ccb3a885685cd67d4d4a32cc20ad7f8adbe015" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.1.0" logging: dependency: transitive description: @@ -633,10 +633,10 @@ packages: dependency: transitive description: name: matcher - sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" url: "https://pub.dev" source: hosted - version: "0.12.13" + version: "0.12.15" material_color_utilities: dependency: "direct main" description: @@ -649,10 +649,10 @@ packages: dependency: transitive description: name: meta - sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.9.1" mime: dependency: transitive description: @@ -681,10 +681,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "10259b111176fba5c505b102e3a5b022b51dd97e30522e906d6922c745584745" + sha256: d39e8fbff4c5aef4592737e25ad6ac500df006ce7a7a8e1f838ce1256e167542 url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "4.0.0" package_info_plus_platform_interface: dependency: transitive description: @@ -697,18 +697,18 @@ packages: dependency: transitive description: name: path - sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" url: "https://pub.dev" source: hosted - version: "1.8.2" + version: "1.8.3" path_provider: dependency: "direct main" description: name: path_provider - sha256: c7edf82217d4b2952b2129a61d3ad60f1075b9299e629e149a8d2e39c2e6aad4 + sha256: "3087813781ab814e4157b172f1a11c46be20179fcc9bea043e0fba36bc0acaa2" url: "https://pub.dev" source: hosted - version: "2.0.14" + version: "2.0.15" path_provider_android: dependency: transitive description: @@ -721,10 +721,10 @@ packages: dependency: transitive description: name: path_provider_foundation - sha256: ad4c4d011830462633f03eb34445a45345673dfd4faf1ab0b4735fbd93b19183 + sha256: "1995d88ec2948dac43edf8fe58eb434d35d22a2940ecee1a9fefcd62beee6eb3" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.2.3" path_provider_linux: dependency: transitive description: @@ -753,10 +753,10 @@ packages: dependency: transitive description: name: petitparser - sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4" + sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 url: "https://pub.dev" source: hosted - version: "5.1.0" + version: "5.4.0" platform: dependency: transitive description: @@ -817,10 +817,10 @@ packages: dependency: "direct main" description: name: scrollable_positioned_list - sha256: "3806b84fa3da65e47146252061d20d12ce254560a6ad098d24b6bad19e079e5d" + sha256: "1b54d5f1329a1e263269abc9e2543d90806131aa14fe7c6062a8054d57249287" url: "https://pub.dev" source: hosted - version: "0.3.7" + version: "0.3.8" shelf: dependency: transitive description: @@ -854,10 +854,10 @@ packages: dependency: transitive description: name: source_gen - sha256: b20e191de6964e98032573cecb1d2b169d96ba63fdb586d24dcd1003ba7e94f6 + sha256: "378a173055cd1fcd2a36e94bf254786d6812688b5f53b6038a2fd180a5a5e210" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.3.1" source_span: dependency: transitive description: @@ -910,10 +910,10 @@ packages: dependency: transitive description: name: test_api - sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb url: "https://pub.dev" source: hosted - version: "0.4.16" + version: "0.5.1" time: dependency: transitive description: @@ -942,10 +942,10 @@ packages: dependency: transitive description: name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" universal_io: dependency: transitive description: @@ -958,10 +958,10 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "75f2846facd11168d007529d6cd8fcb2b750186bea046af9711f10b907e1587e" + sha256: eb1e00ab44303d50dd487aab67ebc575456c146c6af44422f9c13889984c00f3 url: "https://pub.dev" source: hosted - version: "6.1.10" + version: "6.1.11" url_launcher_android: dependency: transitive description: @@ -1062,10 +1062,10 @@ packages: dependency: transitive description: name: xml - sha256: "979ee37d622dec6365e2efa4d906c37470995871fe9ae080d967e192d88286b5" + sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84" url: "https://pub.dev" source: hosted - version: "6.2.2" + version: "6.3.0" xxh3: dependency: transitive description: @@ -1083,5 +1083,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=2.19.6 <3.0.0" + dart: ">=3.0.0 <4.0.0" flutter: ">=3.4.0-17.0.pre" diff --git a/pubspec.yaml b/pubspec.yaml index 0bdf6bf..0da6a62 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -6,7 +6,7 @@ publish_to: "none" version: 1.1.10+21 environment: - sdk: ">=2.19.6 <3.0.0" + sdk: ">=3.0.0 <4.0.0" dependencies: flutter: @@ -14,8 +14,8 @@ dependencies: flutter_localizations: sdk: flutter get: ^4.6.5 - dio: ^5.1.1 - intl: ^0.17.0 + dio: ^5.1.2 + intl: ^0.18.0 isar: ^3.1.0+1 shimmer: ^2.0.0 iconsax: ^0.0.8 @@ -23,19 +23,19 @@ dependencies: geocoding: ^2.1.0 geolocator: ^9.0.2 flutter_glow: ^0.3.0 - url_launcher: ^6.1.10 + url_launcher: ^6.1.11 dynamic_color: ^1.6.3 home_widget: ^0.2.0+1 - path_provider: ^2.0.14 - package_info_plus: ^3.1.2 - connectivity_plus: ^3.0.6 + path_provider: ^2.0.15 + package_info_plus: ^4.0.0 + connectivity_plus: ^4.0.0 isar_flutter_libs: ^3.1.0+1 flutter_displaymode: ^0.6.0 lat_lng_to_timezone: ^0.2.0 custom_navigation_bar: ^0.8.2 flutter_native_timezone: ^2.0.0 material_color_utilities: ^0.2.0 - scrollable_positioned_list: ^0.3.7 + scrollable_positioned_list: ^0.3.8 flutter_local_notifications: ^14.0.0+1 internet_connection_checker: ^1.0.0+1 @@ -43,7 +43,7 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.1 - build_runner: ^2.3.3 + build_runner: ^2.4.2 isar_generator: ^3.1.0+1 flutter_native_splash: ^2.2.19 flutter_launcher_icons: ^0.13.1 From f1d2a6e36c51ae44053b0feb0c56e07548aadc4e Mon Sep 17 00:00:00 2001 From: Yoshi Date: Thu, 11 May 2023 19:01:02 +0300 Subject: [PATCH 019/246] fix --- android/build.gradle | 2 +- lib/main.dart | 4 +-- macos/Flutter/GeneratedPluginRegistrant.swift | 4 +-- pubspec.lock | 36 ++++++++----------- pubspec.yaml | 7 ++-- 5 files changed, 22 insertions(+), 31 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index e50c3a0..f7eb7f6 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -26,6 +26,6 @@ subprojects { project.evaluationDependsOn(':app') } -task clean(type: Delete) { +tasks.register("clean", Delete) { delete rootProject.buildDir } diff --git a/lib/main.dart b/lib/main.dart index e607fc7..1d27237 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -4,7 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_displaymode/flutter_displaymode.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; -import 'package:flutter_native_timezone/flutter_native_timezone.dart'; +import 'package:flutter_timezone/flutter_timezone.dart'; import 'package:get/get.dart'; import 'package:internet_connection_checker/internet_connection_checker.dart'; import 'package:isar/isar.dart'; @@ -40,7 +40,7 @@ void main() async { isDeviceConnectedNotifier.value = Future(() => false); } }); - final String timeZoneName = await FlutterNativeTimezone.getLocalTimezone(); + final String timeZoneName = await FlutterTimezone.getLocalTimezone(); const AndroidInitializationSettings initializationSettingsAndroid = AndroidInitializationSettings('@mipmap/ic_launcher'); const InitializationSettings initializationSettings = diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index c5ca839..be7a1ec 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -8,7 +8,7 @@ import Foundation import connectivity_plus import dynamic_color import flutter_local_notifications -import flutter_native_timezone +import flutter_timezone import geolocator_apple import isar_flutter_libs import package_info_plus @@ -19,7 +19,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { ConnectivityPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlugin")) DynamicColorPlugin.register(with: registry.registrar(forPlugin: "DynamicColorPlugin")) FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin")) - FlutterNativeTimezonePlugin.register(with: registry.registrar(forPlugin: "FlutterNativeTimezonePlugin")) + FlutterTimezonePlugin.register(with: registry.registrar(forPlugin: "FlutterTimezonePlugin")) GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin")) IsarFlutterLibsPlugin.register(with: registry.registrar(forPlugin: "IsarFlutterLibsPlugin")) FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin")) diff --git a/pubspec.lock b/pubspec.lock index 06bbf05..9ec5495 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -322,26 +322,26 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: "2876372952b65ca7f684e698eba22bda1cf581fa071dd30ba2f01900f507d0d1" + sha256: ee6ee56855aa920899b68586b538474d086c149932220b47b92502cbfb5ba5e5 url: "https://pub.dev" source: hosted - version: "14.0.0+1" + version: "14.0.0+2" flutter_local_notifications_linux: dependency: transitive description: name: flutter_local_notifications_linux - sha256: "909bb95de05a2e793503a2437146285a2f600cd0b3f826e26b870a334d8586d7" + sha256: "33f741ef47b5f63cc7f78fe75eeeac7e19f171ff3c3df054d84c1e38bedb6a03" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "4.0.0+1" flutter_local_notifications_platform_interface: dependency: transitive description: name: flutter_local_notifications_platform_interface - sha256: "63235c42de5b6c99846969a27ad0209c401e6b77b0498939813725b5791c107c" + sha256: "7cf643d6d5022f3baed0be777b0662cce5919c0a7b86e700299f22dc4ae660ef" url: "https://pub.dev" source: hosted - version: "7.0.0" + version: "7.0.0+1" flutter_localizations: dependency: "direct main" description: flutter @@ -355,19 +355,19 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.19" - flutter_native_timezone: - dependency: "direct main" - description: - name: flutter_native_timezone - sha256: ed7bfb982f036243de1c068e269182a877100c994f05143c8b26a325e28c1b02 - url: "https://pub.dev" - source: hosted - version: "2.0.0" flutter_test: dependency: "direct dev" description: flutter source: sdk version: "0.0.0" + flutter_timezone: + dependency: "direct main" + description: + name: flutter_timezone + sha256: "9b179c76cbded894e3208b420d0c4286f6c9ab7178c063eba8bc4266a3ee1a3c" + url: "https://pub.dev" + source: hosted + version: "1.0.6" flutter_web_plugins: dependency: transitive description: flutter @@ -485,14 +485,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.0" - home_widget: - dependency: "direct main" - description: - name: home_widget - sha256: c7a57566606ce702454f074a0b933ee156f05ea6ef1f79f4cb680a171afe59dd - url: "https://pub.dev" - source: hosted - version: "0.2.0+1" html: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 0da6a62..ced422b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,7 +3,7 @@ description: Weather app. publish_to: "none" -version: 1.1.10+21 +version: 1.1.11+22 environment: sdk: ">=3.0.0 <4.0.0" @@ -25,18 +25,17 @@ dependencies: flutter_glow: ^0.3.0 url_launcher: ^6.1.11 dynamic_color: ^1.6.3 - home_widget: ^0.2.0+1 path_provider: ^2.0.15 + flutter_timezone: ^1.0.6 package_info_plus: ^4.0.0 connectivity_plus: ^4.0.0 isar_flutter_libs: ^3.1.0+1 flutter_displaymode: ^0.6.0 lat_lng_to_timezone: ^0.2.0 custom_navigation_bar: ^0.8.2 - flutter_native_timezone: ^2.0.0 material_color_utilities: ^0.2.0 scrollable_positioned_list: ^0.3.8 - flutter_local_notifications: ^14.0.0+1 + flutter_local_notifications: ^14.0.0+2 internet_connection_checker: ^1.0.0+1 dev_dependencies: From e14573c0d2f02d9e26e01cb1c17c6f20e3c03d96 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Wed, 17 May 2023 22:25:36 +0300 Subject: [PATCH 020/246] fix package name --- android/app/src/debug/AndroidManifest.xml | 2 +- android/app/src/main/AndroidManifest.xml | 2 +- .../{example => yoshi}/rain/MainActivity.kt | 2 +- android/app/src/profile/AndroidManifest.xml | 2 +- pubspec.lock | 36 +++++---- pubspec.yaml | 9 ++- web/index.html | 74 ++++++++++++++++++- 7 files changed, 101 insertions(+), 26 deletions(-) rename android/app/src/main/kotlin/com/{example => yoshi}/rain/MainActivity.kt (79%) diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml index dbf2df7..247fd99 100644 --- a/android/app/src/debug/AndroidManifest.xml +++ b/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.yoshi.rain"> - + - + + + - + + - +

    A!v!R9N5O;lx${uZ=5RUd*f7@vzDGzjF9r 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 Mrq(8vMsD%{246JbnE(I) literal 19611 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 diff --git a/assets/images/windsock.png b/assets/images/windsock.png new file mode 100644 index 0000000000000000000000000000000000000000..3b78f1453691bf02a07ee8ba4acb5d3dfeca32d1 GIT binary patch literal 19597 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 N0)F8)x { vertical: 5, ), decoration: BoxDecoration( - color: context.theme.colorScheme.primaryContainer, - borderRadius: - const BorderRadius.all(Radius.circular(20))), + color: context.theme.colorScheme.primaryContainer, + borderRadius: const BorderRadius.all( + Radius.circular(20), + ), + ), child: ScrollablePositionedList.separated( physics: const AlwaysScrollableScrollPhysics(), separatorBuilder: (BuildContext context, int index) { @@ -94,13 +95,15 @@ class _WeatherPageState extends State { vertical: 5, ), decoration: BoxDecoration( - color: i == locationController.hourOfDay.value - ? Get.isDarkMode - ? Colors.indigo - : Colors.amberAccent - : Colors.transparent, - borderRadius: const BorderRadius.all( - Radius.circular(20))), + color: i == locationController.hourOfDay.value + ? Get.isDarkMode + ? Colors.indigo + : Colors.amberAccent + : Colors.transparent, + borderRadius: const BorderRadius.all( + Radius.circular(20), + ), + ), child: WeatherHourly( time: locationController.mainWeather.time![i], weather: locationController @@ -123,34 +126,11 @@ class _WeatherPageState extends State { ), Obx( () => locationController.isLoading.isFalse - ? Container( - margin: const EdgeInsets.only(bottom: 15), - padding: const EdgeInsets.symmetric( - horizontal: 10, vertical: 5), - decoration: BoxDecoration( - color: context.theme.colorScheme.primaryContainer, - borderRadius: - const BorderRadius.all(Radius.circular(20))), - child: Row( - children: [ - Expanded( - child: SunsetSunrise( - title: 'sunrise'.tr, - time: locationController.mainWeather.sunrise![ - locationController.dayOfNow.value], - image: 'assets/images/sunrise.png', - ), - ), - Expanded( - child: SunsetSunrise( - title: 'sunset'.tr, - time: locationController.mainWeather - .sunset![locationController.dayOfNow.value], - image: 'assets/images/sunset.png', - ), - ), - ], - ), + ? SunsetSunrise( + timeSunrise: locationController.mainWeather + .sunrise![locationController.dayOfNow.value], + timeSunset: locationController.mainWeather + .sunset![locationController.dayOfNow.value], ) : const MyShimmer( hight: 90, @@ -163,9 +143,11 @@ class _WeatherPageState extends State { margin: const EdgeInsets.only(bottom: 15), padding: const EdgeInsets.only(top: 22, bottom: 5), decoration: BoxDecoration( - color: context.theme.colorScheme.primaryContainer, - borderRadius: - const BorderRadius.all(Radius.circular(20))), + color: context.theme.colorScheme.primaryContainer, + borderRadius: const BorderRadius.all( + Radius.circular(20), + ), + ), child: Column( children: [ Row( @@ -187,7 +169,7 @@ class _WeatherPageState extends State { desc: 'wind'.tr, ), DescWeather( - imageName: 'assets/images/foggy.png', + imageName: 'assets/images/fog.png', value: statusImFa.getVisibility( locationController .mainWeather.visibility![ @@ -232,7 +214,7 @@ class _WeatherPageState extends State { mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ DescWeather( - imageName: 'assets/images/wind-direction.png', + imageName: 'assets/images/windsock.png', value: '${locationController.mainWeather.winddirection10M![locationController.hourOfDay.value]}°', desc: 'direction'.tr, @@ -280,7 +262,7 @@ class _WeatherPageState extends State { desc: 'cloudcover'.tr, ), DescWeather( - imageName: 'assets/images/uv-index.png', + imageName: 'assets/images/uv.png', value: '${locationController.mainWeather.uvIndex![locationController.hourOfDay.value].round()}', desc: 'uvIndex'.tr, @@ -329,59 +311,14 @@ class _WeatherPageState extends State { ), Obx( () => locationController.isLoading.isFalse - ? Container( - height: 450, - margin: const EdgeInsets.only(bottom: 15), - padding: const EdgeInsets.symmetric( - horizontal: 15, - vertical: 5, - ), - decoration: BoxDecoration( - color: context.theme.colorScheme.primaryContainer, - borderRadius: - const BorderRadius.all(Radius.circular(20))), - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Expanded( - child: ListView.builder( - physics: const NeverScrollableScrollPhysics(), - itemCount: 7, - itemBuilder: (ctx, i) => WeatherDaily( - date: locationController - .mainWeather.timeDaily![i], - weather: locationController - .mainWeather.weathercodeDaily![i], - minDegree: locationController - .mainWeather.temperature2MMin![i], - maxDegree: locationController - .mainWeather.temperature2MMax![i], - ), - ), - ), - const Divider(), - GestureDetector( - onTap: () => Get.to( - () => WeatherMore( - mainWeatherCache: - locationController.mainWeather, - ), - transition: Transition.downToUp, - ), - child: Padding( - padding: - const EdgeInsets.symmetric(vertical: 10), - child: Text( - 'weatherMore'.tr, - style: context.theme.textTheme.titleLarge - ?.copyWith( - fontSize: 16, - ), - ), - ), - ), - ], - ), + ? WeatherDaily( + date: locationController.mainWeather.timeDaily!, + weather: + locationController.mainWeather.weathercodeDaily!, + minDegree: + locationController.mainWeather.temperature2MMin!, + maxDegree: + locationController.mainWeather.temperature2MMax!, ) : const MyShimmer( hight: 450, diff --git a/lib/app/modules/weather_card.dart b/lib/app/modules/weather_card.dart index d0cfd8d..1e88e8d 100644 --- a/lib/app/modules/weather_card.dart +++ b/lib/app/modules/weather_card.dart @@ -7,7 +7,6 @@ import 'package:rain/app/widgets/desc.dart'; import 'package:rain/app/widgets/status_im_fa.dart'; import 'package:rain/app/widgets/sunset_sunrise.dart'; import 'package:rain/app/widgets/weather_daily.dart'; -import 'package:rain/app/widgets/weather_more.dart'; import 'package:rain/app/widgets/weather_now.dart'; import 'package:rain/app/widgets/weather_hourly.dart'; import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; @@ -67,12 +66,13 @@ class _WeatherCardPageState extends State { surfaceTintColor: Colors.transparent, elevation: 0, leading: IconButton( - onPressed: () => Get.back(), - icon: Icon( - Iconsax.arrow_left_1, - size: 20, - color: context.theme.iconTheme.color, - )), + onPressed: () => Get.back(), + icon: Icon( + Iconsax.arrow_left_1, + size: 20, + color: context.theme.iconTheme.color, + ), + ), title: Text( '${widget.weatherCard.city}' ', ${widget.weatherCard.district}', @@ -102,9 +102,11 @@ class _WeatherCardPageState extends State { vertical: 5, ), decoration: BoxDecoration( - color: context.theme.colorScheme.primaryContainer, - borderRadius: - const BorderRadius.all(Radius.circular(20))), + color: context.theme.colorScheme.primaryContainer, + borderRadius: const BorderRadius.all( + Radius.circular(20), + ), + ), child: ScrollablePositionedList.separated( physics: const AlwaysScrollableScrollPhysics(), separatorBuilder: (BuildContext context, int index) { @@ -131,13 +133,15 @@ class _WeatherCardPageState extends State { vertical: 5, ), decoration: BoxDecoration( - color: i == timeNow - ? Get.isDarkMode - ? Colors.indigo - : Colors.amberAccent - : Colors.transparent, - borderRadius: - const BorderRadius.all(Radius.circular(20))), + color: i == timeNow + ? Get.isDarkMode + ? Colors.indigo + : Colors.amberAccent + : Colors.transparent, + borderRadius: const BorderRadius.all( + Radius.circular(20), + ), + ), child: WeatherHourly( time: widget.weatherCard.time![i], weather: widget.weatherCard.weathercode![i], @@ -151,40 +155,19 @@ class _WeatherCardPageState extends State { ), ), ), - Container( - margin: const EdgeInsets.only(bottom: 15), - padding: - const EdgeInsets.symmetric(horizontal: 10, vertical: 5), - decoration: BoxDecoration( - color: context.theme.colorScheme.primaryContainer, - borderRadius: - const BorderRadius.all(Radius.circular(20))), - child: Row( - children: [ - Expanded( - child: SunsetSunrise( - title: 'sunrise'.tr, - time: widget.weatherCard.sunrise![dayNow], - image: 'assets/images/sunrise.png', - ), - ), - Expanded( - child: SunsetSunrise( - title: 'sunset'.tr, - time: widget.weatherCard.sunset![dayNow], - image: 'assets/images/sunset.png', - ), - ), - ], - ), + SunsetSunrise( + timeSunrise: widget.weatherCard.sunrise![dayNow], + timeSunset: widget.weatherCard.sunset![dayNow], ), Container( margin: const EdgeInsets.only(bottom: 15), padding: const EdgeInsets.only(top: 22, bottom: 5), decoration: BoxDecoration( - color: context.theme.colorScheme.primaryContainer, - borderRadius: - const BorderRadius.all(Radius.circular(20))), + color: context.theme.colorScheme.primaryContainer, + borderRadius: const BorderRadius.all( + Radius.circular(20), + ), + ), child: Column( children: [ Row( @@ -204,7 +187,7 @@ class _WeatherCardPageState extends State { desc: 'wind'.tr, ), DescWeather( - imageName: 'assets/images/foggy.png', + imageName: 'assets/images/fog.png', value: statusImFa.getVisibility( widget.weatherCard.visibility![timeNow]), desc: 'visibility'.tr, @@ -241,7 +224,7 @@ class _WeatherCardPageState extends State { mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ DescWeather( - imageName: 'assets/images/wind-direction.png', + imageName: 'assets/images/windsock.png', value: '${widget.weatherCard.winddirection10M![timeNow]}°', desc: 'direction'.tr, @@ -281,7 +264,7 @@ class _WeatherCardPageState extends State { desc: 'cloudcover'.tr, ), DescWeather( - imageName: 'assets/images/uv-index.png', + imageName: 'assets/images/uv.png', value: '${widget.weatherCard.uvIndex![timeNow].round()}', desc: 'uvIndex'.tr, @@ -307,51 +290,11 @@ class _WeatherCardPageState extends State { ], ), ), - Container( - height: 450, - margin: const EdgeInsets.only(bottom: 15), - padding: const EdgeInsets.symmetric( - horizontal: 15, - vertical: 5, - ), - decoration: BoxDecoration( - color: context.theme.colorScheme.primaryContainer, - borderRadius: - const BorderRadius.all(Radius.circular(20))), - child: Column( - children: [ - Expanded( - child: ListView.builder( - physics: const NeverScrollableScrollPhysics(), - itemCount: 7, - itemBuilder: (ctx, i) => WeatherDaily( - date: widget.weatherCard.timeDaily![i], - weather: widget.weatherCard.weathercodeDaily![i], - minDegree: widget.weatherCard.temperature2MMin![i], - maxDegree: widget.weatherCard.temperature2MMax![i], - ), - ), - ), - const Divider(), - GestureDetector( - onTap: () => Get.to( - () => WeatherMore( - weatherCard: widget.weatherCard, - ), - transition: Transition.downToUp, - ), - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 10), - child: Text( - 'weatherMore'.tr, - style: context.theme.textTheme.titleLarge?.copyWith( - fontSize: 16, - ), - ), - ), - ), - ], - ), + WeatherDaily( + date: widget.weatherCard.timeDaily!, + weather: widget.weatherCard.weathercodeDaily!, + minDegree: widget.weatherCard.temperature2MMin!, + maxDegree: widget.weatherCard.temperature2MMax!, ), ], ), diff --git a/lib/app/widgets/status.dart b/lib/app/widgets/status.dart index 87d09ec..7d40b7c 100644 --- a/lib/app/widgets/status.dart +++ b/lib/app/widgets/status.dart @@ -66,7 +66,7 @@ class Status { } String getImageToday( - String time, int weather, String timeDay, String timeNight) { + int weather, String time, String timeDay, String timeNight) { final currentTime = DateTime.parse(time); final day = DateTime.parse(timeDay); final night = DateTime.parse(timeNight); diff --git a/lib/app/widgets/sunset_sunrise.dart b/lib/app/widgets/sunset_sunrise.dart index 4d967f9..23e9072 100644 --- a/lib/app/widgets/sunset_sunrise.dart +++ b/lib/app/widgets/sunset_sunrise.dart @@ -5,13 +5,12 @@ import 'package:rain/app/widgets/status_im_fa.dart'; class SunsetSunrise extends StatefulWidget { const SunsetSunrise({ super.key, - required this.title, - required this.time, - required this.image, + required this.timeSunrise, + required this.timeSunset, }); - final String title; - final String time; - final String image; + + final String timeSunrise; + final String timeSunset; @override State createState() => _SunsetSunriseState(); @@ -23,34 +22,81 @@ class _SunsetSunriseState extends State { @override Widget build(BuildContext context) { - return Row( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - widget.title, - style: context.theme.textTheme.titleSmall, - overflow: TextOverflow.ellipsis, - textAlign: TextAlign.center, - ), - const SizedBox(height: 2), - Text( - statusImFa.getTimeFormat(widget.time), - style: context.theme.textTheme.titleLarge, - ), - ], - ), + return Container( + margin: const EdgeInsets.only(bottom: 15), + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 5), + decoration: BoxDecoration( + color: context.theme.colorScheme.primaryContainer, + borderRadius: const BorderRadius.all( + Radius.circular(20), ), - Expanded( - child: Image.asset( - widget.image, - scale: 10, + ), + child: Row( + children: [ + Expanded( + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'sunrise'.tr, + style: context.theme.textTheme.titleSmall, + overflow: TextOverflow.ellipsis, + textAlign: TextAlign.center, + ), + const SizedBox(height: 2), + Text( + statusImFa.getTimeFormat(widget.timeSunrise), + style: context.theme.textTheme.titleLarge, + ), + ], + ), + ), + Expanded( + child: Image.asset( + 'assets/images/sunrise.png', + scale: 10, + ), + ), + ], + ), ), - ), - ], + Expanded( + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'sunset'.tr, + style: context.theme.textTheme.titleSmall, + overflow: TextOverflow.ellipsis, + textAlign: TextAlign.center, + ), + const SizedBox(height: 2), + Text( + statusImFa.getTimeFormat(widget.timeSunset), + style: context.theme.textTheme.titleLarge, + ), + ], + ), + ), + Expanded( + child: Image.asset( + 'assets/images/sunset.png', + scale: 10, + ), + ), + ], + ), + ), + ], + ), ); } } diff --git a/lib/app/widgets/weather_daily.dart b/lib/app/widgets/weather_daily.dart index 4210c07..9667f4f 100644 --- a/lib/app/widgets/weather_daily.dart +++ b/lib/app/widgets/weather_daily.dart @@ -12,10 +12,10 @@ class WeatherDaily extends StatefulWidget { required this.minDegree, required this.maxDegree, }); - final DateTime date; - final int weather; - final double minDegree; - final double maxDegree; + final List date; + final List weather; + final List minDegree; + final List maxDegree; @override State createState() => _WeatherDailyState(); @@ -29,56 +29,99 @@ class _WeatherDailyState extends State { @override Widget build(BuildContext context) { return Container( - margin: const EdgeInsets.symmetric(vertical: 12), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + height: 450, + margin: const EdgeInsets.only(bottom: 15), + padding: const EdgeInsets.symmetric( + horizontal: 15, + vertical: 5, + ), + decoration: BoxDecoration( + color: context.theme.colorScheme.primaryContainer, + borderRadius: const BorderRadius.all( + Radius.circular(20), + ), + ), + child: Column( children: [ Expanded( - child: Text( - DateFormat.EEEE(locale?.languageCode).format(widget.date), - style: context.theme.textTheme.labelLarge, - ), + child: ListView.builder( + physics: const NeverScrollableScrollPhysics(), + itemCount: 7, + itemBuilder: (ctx, i) { + return Container( + margin: const EdgeInsets.symmetric(vertical: 12), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Text( + DateFormat.EEEE(locale?.languageCode) + .format(widget.date[i]), + style: context.theme.textTheme.labelLarge, + ), + ), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + status.getImage7Day(widget.weather[i]), + scale: 3, + ), + const SizedBox(width: 5), + Expanded( + child: Text( + status.getText(widget.weather[i]), + style: context.theme.textTheme.labelLarge, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + ), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Text( + statusImFa.getDegree( + widget.minDegree[i].round().toInt()), + style: context.theme.textTheme.labelLarge, + ), + Text( + ' / ', + style: context.theme.textTheme.bodyMedium + ?.copyWith( + color: Colors.grey, + ), + ), + Text( + statusImFa.getDegree( + widget.maxDegree[i].round().toInt()), + style: context.theme.textTheme.bodyMedium + ?.copyWith( + color: Colors.grey, + ), + ), + ], + ), + ), + ], + ), + ); + }), ), - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Image.asset( - status.getImage7Day(widget.weather), - scale: 3, + const Divider(), + GestureDetector( + onTap: () {}, + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 10), + child: Text( + 'weatherMore'.tr, + style: context.theme.textTheme.titleLarge?.copyWith( + fontSize: 16, ), - const SizedBox(width: 5), - Expanded( - child: Text( - status.getText(widget.weather), - style: context.theme.textTheme.labelLarge, - overflow: TextOverflow.ellipsis, - ), - ), - ], - ), - ), - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Text( - statusImFa.getDegree(widget.minDegree.round().toInt()), - style: context.theme.textTheme.labelLarge, - ), - Text( - ' / ', - style: context.theme.textTheme.bodyMedium?.copyWith( - color: Colors.grey, - ), - ), - Text( - statusImFa.getDegree(widget.maxDegree.round().toInt()), - style: context.theme.textTheme.bodyMedium?.copyWith( - color: Colors.grey, - ), - ), - ], + ), ), ), ], diff --git a/lib/app/widgets/weather_hourly.dart b/lib/app/widgets/weather_hourly.dart index ad2157a..3a29c39 100644 --- a/lib/app/widgets/weather_hourly.dart +++ b/lib/app/widgets/weather_hourly.dart @@ -50,7 +50,7 @@ class _WeatherHourlyState extends State { ), Image.asset( status.getImageToday( - widget.time, widget.weather, widget.timeDay, widget.timeNight), + widget.weather, widget.time, widget.timeDay, widget.timeNight), scale: 3, ), Text( From 53f14a3ecd45253e6dd6856cf3f53a9e57d0d010 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sun, 23 Apr 2023 22:05:16 +0300 Subject: [PATCH 005/246] added windgusts --- assets/images/windgusts.png | Bin 0 -> 26085 bytes lib/app/api/api.dart | 12 +- lib/app/api/daily.dart | 4 + lib/app/api/hourly.dart | 3 + lib/app/controller/controller.dart | 4 + lib/app/data/weather.dart | 8 + lib/app/data/weather.g.dart | 831 ++++++++++++++++++++++++++++- lib/app/modules/weather.dart | 9 + lib/app/modules/weather_card.dart | 7 + lib/translation/translation.dart | 15 +- 10 files changed, 874 insertions(+), 19 deletions(-) create mode 100644 assets/images/windgusts.png diff --git a/assets/images/windgusts.png b/assets/images/windgusts.png new file mode 100644 index 0000000000000000000000000000000000000000..d3753de7b994e354477c4178e666f901738213cc GIT binary patch literal 26085 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