From 2cc70f922132bf581f7ee6063d0b0cf2c069d962 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Fri, 2 Aug 2024 22:52:33 +0300 Subject: [PATCH] Add mmHg and m/s --- android/settings.gradle | 2 +- lib/app/api/api.dart | 4 +- lib/app/api/{city.dart => city_api.dart} | 0 .../api/{weather.dart => weather_api.dart} | 4 +- ....freezed.dart => weather_api.freezed.dart} | 2 +- .../{weather.g.dart => weather_api.g.dart} | 2 +- lib/app/data/weather.dart | 2 + lib/app/data/weather.g.dart | 414 ++++++++++++++++-- .../cards/widgets/create_card_weather.dart | 2 +- lib/app/modules/geolocation.dart | 2 +- lib/app/modules/home.dart | 4 +- .../view/{weather.dart => weather_main.dart} | 0 lib/app/modules/settings/view/settings.dart | 32 ++ .../settings/widgets/setting_card.dart | 9 +- lib/app/widgets/desc/desc_container.dart | 2 +- lib/app/widgets/status/status_data.dart | 10 +- lib/translation/bn_in.dart | 2 + lib/translation/cs_cz.dart | 2 + lib/translation/da_dk.dart | 2 + lib/translation/de_de.dart | 2 + lib/translation/en_us.dart | 2 + lib/translation/es_es.dart | 2 + lib/translation/fa_ir.dart | 2 + lib/translation/fr_fr.dart | 2 + lib/translation/ga_ie.dart | 2 + lib/translation/hi_in.dart | 2 + lib/translation/hu_hu.dart | 2 + lib/translation/it_it.dart | 2 + lib/translation/ka_ge.dart | 2 + lib/translation/ko_kr.dart | 2 + lib/translation/nl_nl.dart | 2 + lib/translation/pl_pl.dart | 2 + lib/translation/pt_br.dart | 2 + lib/translation/ro_ro.dart | 2 + lib/translation/ru_ru.dart | 2 + lib/translation/sk_sk.dart | 2 + lib/translation/tr_tr.dart | 2 + lib/translation/ur_pk.dart | 2 + lib/translation/zh_ch.dart | 2 + lib/translation/zh_tw.dart | 2 + pubspec.lock | 20 +- pubspec.yaml | 4 +- 42 files changed, 507 insertions(+), 56 deletions(-) rename lib/app/api/{city.dart => city_api.dart} (100%) rename lib/app/api/{weather.dart => weather_api.dart} (97%) rename lib/app/api/{weather.freezed.dart => weather_api.freezed.dart} (99%) rename lib/app/api/{weather.g.dart => weather_api.g.dart} (99%) rename lib/app/modules/main/view/{weather.dart => weather_main.dart} (100%) diff --git a/android/settings.gradle b/android/settings.gradle index f2997bd..9f0fe47 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -20,7 +20,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "7.4.2" apply false - id "org.jetbrains.kotlin.android" version "1.9.22" apply false + id "org.jetbrains.kotlin.android" version "2.0.0" apply false } include ":app" diff --git a/lib/app/api/api.dart b/lib/app/api/api.dart index 8cf7b8e..2a30802 100644 --- a/lib/app/api/api.dart +++ b/lib/app/api/api.dart @@ -1,8 +1,8 @@ import 'package:dio/dio.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:rain/app/api/city.dart'; -import 'package:rain/app/api/weather.dart'; +import 'package:rain/app/api/city_api.dart'; +import 'package:rain/app/api/weather_api.dart'; import 'package:rain/app/data/weather.dart'; import 'package:rain/main.dart'; diff --git a/lib/app/api/city.dart b/lib/app/api/city_api.dart similarity index 100% rename from lib/app/api/city.dart rename to lib/app/api/city_api.dart diff --git a/lib/app/api/weather.dart b/lib/app/api/weather_api.dart similarity index 97% rename from lib/app/api/weather.dart rename to lib/app/api/weather_api.dart index 44e4513..1d7e93b 100644 --- a/lib/app/api/weather.dart +++ b/lib/app/api/weather_api.dart @@ -2,8 +2,8 @@ import 'package:freezed_annotation/freezed_annotation.dart'; //ignore_for_file: invalid_annotation_target -part 'weather.freezed.dart'; -part 'weather.g.dart'; +part 'weather_api.freezed.dart'; +part 'weather_api.g.dart'; @freezed class WeatherDataApi with _$WeatherDataApi { diff --git a/lib/app/api/weather.freezed.dart b/lib/app/api/weather_api.freezed.dart similarity index 99% rename from lib/app/api/weather.freezed.dart rename to lib/app/api/weather_api.freezed.dart index 01809be..048a787 100644 --- a/lib/app/api/weather.freezed.dart +++ b/lib/app/api/weather_api.freezed.dart @@ -3,7 +3,7 @@ // ignore_for_file: type=lint // ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark -part of 'weather.dart'; +part of 'weather_api.dart'; // ************************************************************************** // FreezedGenerator diff --git a/lib/app/api/weather.g.dart b/lib/app/api/weather_api.g.dart similarity index 99% rename from lib/app/api/weather.g.dart rename to lib/app/api/weather_api.g.dart index 0deed85..645b156 100644 --- a/lib/app/api/weather.g.dart +++ b/lib/app/api/weather_api.g.dart @@ -1,6 +1,6 @@ // GENERATED CODE - DO NOT MODIFY BY HAND -part of 'weather.dart'; +part of 'weather_api.dart'; // ************************************************************************** // JsonSerializableGenerator diff --git a/lib/app/data/weather.dart b/lib/app/data/weather.dart index e05e473..466828b 100644 --- a/lib/app/data/weather.dart +++ b/lib/app/data/weather.dart @@ -17,6 +17,8 @@ class Settings { String? widgetTextColor; String measurements = 'metric'; String degrees = 'celsius'; + String wind = 'kph'; + String pressure = 'hPa'; String timeformat = '24'; String? language; int? timeRange; diff --git a/lib/app/data/weather.g.dart b/lib/app/data/weather.g.dart index 7d7102e..bd8959d 100644 --- a/lib/app/data/weather.g.dart +++ b/lib/app/data/weather.g.dart @@ -62,45 +62,55 @@ const SettingsSchema = CollectionSchema( name: r'onboard', type: IsarType.bool, ), - r'roundDegree': PropertySchema( + r'pressure': PropertySchema( id: 9, + name: r'pressure', + type: IsarType.string, + ), + r'roundDegree': PropertySchema( + id: 10, name: r'roundDegree', type: IsarType.bool, ), r'theme': PropertySchema( - id: 10, + id: 11, name: r'theme', type: IsarType.string, ), r'timeEnd': PropertySchema( - id: 11, + id: 12, name: r'timeEnd', type: IsarType.string, ), r'timeRange': PropertySchema( - id: 12, + id: 13, name: r'timeRange', type: IsarType.long, ), r'timeStart': PropertySchema( - id: 13, + id: 14, name: r'timeStart', type: IsarType.string, ), r'timeformat': PropertySchema( - id: 14, + id: 15, name: r'timeformat', type: IsarType.string, ), r'widgetBackgroundColor': PropertySchema( - id: 15, + id: 16, name: r'widgetBackgroundColor', type: IsarType.string, ), r'widgetTextColor': PropertySchema( - id: 16, + id: 17, name: r'widgetTextColor', type: IsarType.string, + ), + r'wind': PropertySchema( + id: 18, + name: r'wind', + type: IsarType.string, ) }, estimateSize: _settingsEstimateSize, @@ -131,6 +141,7 @@ int _settingsEstimateSize( } } bytesCount += 3 + object.measurements.length * 3; + bytesCount += 3 + object.pressure.length * 3; { final value = object.theme; if (value != null) { @@ -162,6 +173,7 @@ int _settingsEstimateSize( bytesCount += 3 + value.length * 3; } } + bytesCount += 3 + object.wind.length * 3; return bytesCount; } @@ -180,14 +192,16 @@ void _settingsSerialize( writer.writeString(offsets[6], object.measurements); writer.writeBool(offsets[7], object.notifications); writer.writeBool(offsets[8], object.onboard); - writer.writeBool(offsets[9], object.roundDegree); - writer.writeString(offsets[10], object.theme); - writer.writeString(offsets[11], object.timeEnd); - writer.writeLong(offsets[12], object.timeRange); - writer.writeString(offsets[13], object.timeStart); - writer.writeString(offsets[14], object.timeformat); - writer.writeString(offsets[15], object.widgetBackgroundColor); - writer.writeString(offsets[16], object.widgetTextColor); + writer.writeString(offsets[9], object.pressure); + writer.writeBool(offsets[10], object.roundDegree); + writer.writeString(offsets[11], object.theme); + writer.writeString(offsets[12], object.timeEnd); + writer.writeLong(offsets[13], object.timeRange); + writer.writeString(offsets[14], object.timeStart); + writer.writeString(offsets[15], object.timeformat); + writer.writeString(offsets[16], object.widgetBackgroundColor); + writer.writeString(offsets[17], object.widgetTextColor); + writer.writeString(offsets[18], object.wind); } Settings _settingsDeserialize( @@ -207,14 +221,16 @@ Settings _settingsDeserialize( object.measurements = reader.readString(offsets[6]); object.notifications = reader.readBool(offsets[7]); object.onboard = reader.readBool(offsets[8]); - object.roundDegree = reader.readBool(offsets[9]); - object.theme = reader.readStringOrNull(offsets[10]); - object.timeEnd = reader.readStringOrNull(offsets[11]); - object.timeRange = reader.readLongOrNull(offsets[12]); - object.timeStart = reader.readStringOrNull(offsets[13]); - object.timeformat = reader.readString(offsets[14]); - object.widgetBackgroundColor = reader.readStringOrNull(offsets[15]); - object.widgetTextColor = reader.readStringOrNull(offsets[16]); + object.pressure = reader.readString(offsets[9]); + object.roundDegree = reader.readBool(offsets[10]); + object.theme = reader.readStringOrNull(offsets[11]); + object.timeEnd = reader.readStringOrNull(offsets[12]); + object.timeRange = reader.readLongOrNull(offsets[13]); + object.timeStart = reader.readStringOrNull(offsets[14]); + object.timeformat = reader.readString(offsets[15]); + object.widgetBackgroundColor = reader.readStringOrNull(offsets[16]); + object.widgetTextColor = reader.readStringOrNull(offsets[17]); + object.wind = reader.readString(offsets[18]); return object; } @@ -244,21 +260,25 @@ P _settingsDeserializeProp

( case 8: return (reader.readBool(offset)) as P; case 9: - return (reader.readBool(offset)) as P; + return (reader.readString(offset)) as P; case 10: - return (reader.readStringOrNull(offset)) as P; + return (reader.readBool(offset)) as P; case 11: return (reader.readStringOrNull(offset)) as P; case 12: - return (reader.readLongOrNull(offset)) as P; + return (reader.readStringOrNull(offset)) as P; case 13: - return (reader.readStringOrNull(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 14: - return (reader.readString(offset)) as P; - case 15: return (reader.readStringOrNull(offset)) as P; + case 15: + return (reader.readString(offset)) as P; case 16: return (reader.readStringOrNull(offset)) as P; + case 17: + return (reader.readStringOrNull(offset)) as P; + case 18: + return (reader.readString(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); } @@ -875,6 +895,136 @@ extension SettingsQueryFilter }); } + QueryBuilder pressureEqualTo( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'pressure', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pressureGreaterThan( + String value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'pressure', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pressureLessThan( + String value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'pressure', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pressureBetween( + String lower, + String upper, { + bool includeLower = true, + bool includeUpper = true, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'pressure', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pressureStartsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.startsWith( + property: r'pressure', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pressureEndsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.endsWith( + property: r'pressure', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pressureContains( + String value, + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.contains( + property: r'pressure', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pressureMatches( + String pattern, + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.matches( + property: r'pressure', + wildcard: pattern, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pressureIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'pressure', + value: '', + )); + }); + } + + QueryBuilder pressureIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + property: r'pressure', + value: '', + )); + }); + } + QueryBuilder roundDegreeEqualTo( bool value) { return QueryBuilder.apply(this, (query) { @@ -1832,6 +1982,136 @@ extension SettingsQueryFilter )); }); } + + QueryBuilder windEqualTo( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'wind', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder windGreaterThan( + String value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'wind', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder windLessThan( + String value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'wind', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder windBetween( + String lower, + String upper, { + bool includeLower = true, + bool includeUpper = true, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'wind', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder windStartsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.startsWith( + property: r'wind', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder windEndsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.endsWith( + property: r'wind', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder windContains( + String value, + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.contains( + property: r'wind', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder windMatches( + String pattern, + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.matches( + property: r'wind', + wildcard: pattern, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder windIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'wind', + value: '', + )); + }); + } + + QueryBuilder windIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + property: r'wind', + value: '', + )); + }); + } } extension SettingsQueryObject @@ -1949,6 +2229,18 @@ extension SettingsQuerySortBy on QueryBuilder { }); } + QueryBuilder sortByPressure() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'pressure', Sort.asc); + }); + } + + QueryBuilder sortByPressureDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'pressure', Sort.desc); + }); + } + QueryBuilder sortByRoundDegree() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'roundDegree', Sort.asc); @@ -2045,6 +2337,18 @@ extension SettingsQuerySortBy on QueryBuilder { return query.addSortBy(r'widgetTextColor', Sort.desc); }); } + + QueryBuilder sortByWind() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'wind', Sort.asc); + }); + } + + QueryBuilder sortByWindDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'wind', Sort.desc); + }); + } } extension SettingsQuerySortThenBy @@ -2169,6 +2473,18 @@ extension SettingsQuerySortThenBy }); } + QueryBuilder thenByPressure() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'pressure', Sort.asc); + }); + } + + QueryBuilder thenByPressureDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'pressure', Sort.desc); + }); + } + QueryBuilder thenByRoundDegree() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'roundDegree', Sort.asc); @@ -2265,6 +2581,18 @@ extension SettingsQuerySortThenBy return query.addSortBy(r'widgetTextColor', Sort.desc); }); } + + QueryBuilder thenByWind() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'wind', Sort.asc); + }); + } + + QueryBuilder thenByWindDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'wind', Sort.desc); + }); + } } extension SettingsQueryWhereDistinct @@ -2326,6 +2654,13 @@ extension SettingsQueryWhereDistinct }); } + QueryBuilder distinctByPressure( + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'pressure', caseSensitive: caseSensitive); + }); + } + QueryBuilder distinctByRoundDegree() { return QueryBuilder.apply(this, (query) { return query.addDistinctBy(r'roundDegree'); @@ -2381,6 +2716,13 @@ extension SettingsQueryWhereDistinct caseSensitive: caseSensitive); }); } + + QueryBuilder distinctByWind( + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'wind', caseSensitive: caseSensitive); + }); + } } extension SettingsQueryProperty @@ -2445,6 +2787,12 @@ extension SettingsQueryProperty }); } + QueryBuilder pressureProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'pressure'); + }); + } + QueryBuilder roundDegreeProperty() { return QueryBuilder.apply(this, (query) { return query.addPropertyName(r'roundDegree'); @@ -2493,6 +2841,12 @@ extension SettingsQueryProperty return query.addPropertyName(r'widgetTextColor'); }); } + + QueryBuilder windProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'wind'); + }); + } } // coverage:ignore-file diff --git a/lib/app/modules/cards/widgets/create_card_weather.dart b/lib/app/modules/cards/widgets/create_card_weather.dart index 6dea2ed..435c020 100644 --- a/lib/app/modules/cards/widgets/create_card_weather.dart +++ b/lib/app/modules/cards/widgets/create_card_weather.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:iconsax/iconsax.dart'; import 'package:rain/app/api/api.dart'; -import 'package:rain/app/api/city.dart'; +import 'package:rain/app/api/city_api.dart'; import 'package:rain/app/controller/controller.dart'; import 'package:rain/app/widgets/button.dart'; import 'package:rain/app/widgets/text_form.dart'; diff --git a/lib/app/modules/geolocation.dart b/lib/app/modules/geolocation.dart index 51c7a89..8f84fd9 100644 --- a/lib/app/modules/geolocation.dart +++ b/lib/app/modules/geolocation.dart @@ -4,7 +4,7 @@ import 'package:geolocator/geolocator.dart'; import 'package:get/get.dart'; import 'package:iconsax/iconsax.dart'; import 'package:rain/app/api/api.dart'; -import 'package:rain/app/api/city.dart'; +import 'package:rain/app/api/city_api.dart'; import 'package:rain/app/controller/controller.dart'; import 'package:rain/app/modules/home.dart'; import 'package:rain/app/widgets/button.dart'; diff --git a/lib/app/modules/home.dart b/lib/app/modules/home.dart index 61d7a28..b18d4b1 100644 --- a/lib/app/modules/home.dart +++ b/lib/app/modules/home.dart @@ -3,13 +3,13 @@ import 'package:get/get.dart'; import 'package:iconsax/iconsax.dart'; import 'package:isar/isar.dart'; import 'package:rain/app/api/api.dart'; -import 'package:rain/app/api/city.dart'; +import 'package:rain/app/api/city_api.dart'; import 'package:rain/app/controller/controller.dart'; import 'package:rain/app/data/weather.dart'; import 'package:rain/app/modules/cards/view/list_weather_card.dart'; import 'package:rain/app/modules/cards/widgets/create_card_weather.dart'; import 'package:rain/app/modules/geolocation.dart'; -import 'package:rain/app/modules/main/view/weather.dart'; +import 'package:rain/app/modules/main/view/weather_main.dart'; import 'package:rain/app/modules/settings/view/settings.dart'; import 'package:rain/app/services/utils.dart'; import 'package:rain/main.dart'; diff --git a/lib/app/modules/main/view/weather.dart b/lib/app/modules/main/view/weather_main.dart similarity index 100% rename from lib/app/modules/main/view/weather.dart rename to lib/app/modules/main/view/weather_main.dart diff --git a/lib/app/modules/settings/view/settings.dart b/lib/app/modules/settings/view/settings.dart index b017543..e2a0d25 100644 --- a/lib/app/modules/settings/view/settings.dart +++ b/lib/app/modules/settings/view/settings.dart @@ -554,6 +554,38 @@ class _SettingsPageState extends State { setState(() {}); }, ), + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.wind), + text: 'wind'.tr, + dropdown: true, + dropdownName: settings.wind.tr, + dropdownList: ['kph'.tr, 'm/s'.tr], + dropdownCange: (String? newValue) async { + isar.writeTxnSync(() { + settings.wind = + newValue == 'kph'.tr ? 'kph' : 'm/s'; + isar.settings.putSync(settings); + }); + setState(() {}); + }, + ), + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.ruler), + text: 'pressure'.tr, + dropdown: true, + dropdownName: settings.pressure.tr, + dropdownList: ['hPa'.tr, 'mmHg'.tr], + dropdownCange: (String? newValue) async { + isar.writeTxnSync(() { + settings.pressure = + newValue == 'hPa'.tr ? 'hPa' : 'mmHg'; + isar.settings.putSync(settings); + }); + setState(() {}); + }, + ), SettingCard( elevation: 4, icon: const Icon(Iconsax.clock), diff --git a/lib/app/modules/settings/widgets/setting_card.dart b/lib/app/modules/settings/widgets/setting_card.dart index 4bdccca..d0d0790 100644 --- a/lib/app/modules/settings/widgets/setting_card.dart +++ b/lib/app/modules/settings/widgets/setting_card.dart @@ -42,7 +42,7 @@ class SettingCard extends StatelessWidget { margin: const EdgeInsets.symmetric(horizontal: 10, vertical: 5), child: ListTile( shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(16), + borderRadius: BorderRadius.circular(15), ), onTap: onPressed, leading: icon, @@ -61,6 +61,13 @@ class SettingCard extends StatelessWidget { ) : dropdown ? DropdownButton( + icon: const Padding( + padding: EdgeInsets.only(left: 7), + child: Icon(Iconsax.arrow_down_1), + ), + iconSize: 15, + alignment: AlignmentDirectional.centerEnd, + borderRadius: const BorderRadius.all(Radius.circular(15)), underline: Container(), value: dropdownName, items: dropdownList! diff --git a/lib/app/widgets/desc/desc_container.dart b/lib/app/widgets/desc/desc_container.dart index 877065a..ce132ed 100644 --- a/lib/app/widgets/desc/desc_container.dart +++ b/lib/app/widgets/desc/desc_container.dart @@ -277,7 +277,7 @@ class _DescContainerState extends State { ? Container() : DescWeather( imageName: 'assets/images/atmospheric.png', - value: '${pressure.round()} ${'hPa'.tr}', + value: statusData.getPressure(pressure.round()), desc: 'pressure'.tr, message: message.getPressure(pressure.round()), ), diff --git a/lib/app/widgets/status/status_data.dart b/lib/app/widgets/status/status_data.dart index 0a2efa7..3ae8a50 100644 --- a/lib/app/widgets/status/status_data.dart +++ b/lib/app/widgets/status/status_data.dart @@ -18,7 +18,9 @@ class StatusData { String getSpeed(int? speed) { switch (settings.measurements) { case 'metric': - return '$speed ${'kph'.tr}'; + return settings.wind == 'm/s' + ? '${(speed! * (5 / 18)).toPrecision(1)} ${'m/s'.tr}' + : '$speed ${'kph'.tr}'; case 'imperial': return '$speed ${'mph'.tr}'; default: @@ -26,6 +28,12 @@ class StatusData { } } + String getPressure(int? pressure) { + return settings.pressure == 'mmHg' + ? '${(pressure! * (3 / 4)).toPrecision(1)} ${'mmHg'.tr}' + : '$pressure ${'hPa'.tr}'; + } + String getVisibility(double? length) { if (length != null) { switch (settings.measurements) { diff --git a/lib/translation/bn_in.dart b/lib/translation/bn_in.dart index 10ffbcb..ef70ac4 100644 --- a/lib/translation/bn_in.dart +++ b/lib/translation/bn_in.dart @@ -35,6 +35,8 @@ class BnIn { 'thunderstorm': 'বজ্রপাত', 'kph': 'কিমি/ঘণ্টা', 'mph': 'মাইল/ঘণ্টা', + 'm/s': 'মি/সে', + 'mmHg': 'মিমি Hg', 'mi': 'মাইল', 'km': 'কিমি', 'inch': 'ইঞ্চ', diff --git a/lib/translation/cs_cz.dart b/lib/translation/cs_cz.dart index ec7bf4d..1dcd7f9 100644 --- a/lib/translation/cs_cz.dart +++ b/lib/translation/cs_cz.dart @@ -35,6 +35,8 @@ class CsCz { 'thunderstorm': 'Bouřka', 'kph': 'km/h', 'mph': 'mph', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'mi': 'mi', 'km': 'km', 'inch': 'inch', diff --git a/lib/translation/da_dk.dart b/lib/translation/da_dk.dart index 288caa5..d873cc6 100644 --- a/lib/translation/da_dk.dart +++ b/lib/translation/da_dk.dart @@ -35,6 +35,8 @@ class DaDk { 'thunderstorm': 'Tordenvejr', 'kph': 'km/h', 'mph': 'mph', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'mi': 'mi', 'km': 'km', 'inch': 'tommer', diff --git a/lib/translation/de_de.dart b/lib/translation/de_de.dart index 5f61e64..e983682 100644 --- a/lib/translation/de_de.dart +++ b/lib/translation/de_de.dart @@ -35,6 +35,8 @@ class DeDe { 'thunderstorm': 'Gewitter', 'kph': 'km/h', 'mph': 'mph', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'mi': 'mi', 'km': 'km', 'inch': 'inch', diff --git a/lib/translation/en_us.dart b/lib/translation/en_us.dart index f850f69..ea40693 100644 --- a/lib/translation/en_us.dart +++ b/lib/translation/en_us.dart @@ -35,6 +35,8 @@ class EnUs { 'thunderstorm': 'Thunderstorm', 'kph': 'km/h', 'mph': 'mph', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'mi': 'mi', 'km': 'km', 'inch': 'inch', diff --git a/lib/translation/es_es.dart b/lib/translation/es_es.dart index 219038b..2273902 100644 --- a/lib/translation/es_es.dart +++ b/lib/translation/es_es.dart @@ -35,6 +35,8 @@ class EsEs { 'thunderstorm': 'Tormenta', 'kph': 'km/h', 'mph': 'mph', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'mi': 'mi', 'km': 'km', 'inch': 'inch', diff --git a/lib/translation/fa_ir.dart b/lib/translation/fa_ir.dart index 423c223..e3fbf84 100644 --- a/lib/translation/fa_ir.dart +++ b/lib/translation/fa_ir.dart @@ -37,6 +37,8 @@ class FaIr { 'mph': 'mph', 'mi': 'mi', 'km': 'km', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'inch': 'inch', 'mm': 'mm', 'hPa': 'hPa', diff --git a/lib/translation/fr_fr.dart b/lib/translation/fr_fr.dart index ff5aea0..9989b5c 100644 --- a/lib/translation/fr_fr.dart +++ b/lib/translation/fr_fr.dart @@ -35,6 +35,8 @@ class FrFr { 'thunderstorm': 'Orage', 'kph': 'km/h', 'mph': 'mph', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'mi': 'mi', 'km': 'km', 'inch': 'inch', diff --git a/lib/translation/ga_ie.dart b/lib/translation/ga_ie.dart index 89c8bcd..559972c 100644 --- a/lib/translation/ga_ie.dart +++ b/lib/translation/ga_ie.dart @@ -35,6 +35,8 @@ class GaIe { 'thunderstorm': 'Tornaí', 'kph': 'km/u', 'mph': 'mi/u', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'mi': 'míle', 'km': 'km', 'inch': 'úinse', diff --git a/lib/translation/hi_in.dart b/lib/translation/hi_in.dart index 97e0037..a624f6a 100644 --- a/lib/translation/hi_in.dart +++ b/lib/translation/hi_in.dart @@ -35,6 +35,8 @@ class HiIn { 'thunderstorm': 'बिजली चमक', 'kph': 'किमी/घंटा', 'mph': 'मील/घंटा', + 'm/s': 'मी/से', + 'mmHg': 'मिमी एचजी', 'mi': 'मील', 'km': 'किमी', 'inch': 'इंच', diff --git a/lib/translation/hu_hu.dart b/lib/translation/hu_hu.dart index 7b616f3..d54a059 100644 --- a/lib/translation/hu_hu.dart +++ b/lib/translation/hu_hu.dart @@ -35,6 +35,8 @@ class HuHu { 'thunderstorm': 'Zivatar', 'kph': 'km/óra', 'mph': 'mph', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'mi': 'mérföld', 'km': 'km', 'inch': 'hüvelyk', diff --git a/lib/translation/it_it.dart b/lib/translation/it_it.dart index 04f4651..505f4c3 100644 --- a/lib/translation/it_it.dart +++ b/lib/translation/it_it.dart @@ -35,6 +35,8 @@ class ItIt { 'thunderstorm': 'Temporale', 'kph': 'km/h', 'mph': 'mph', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'mi': 'mi', 'km': 'km', 'inch': 'inch', diff --git a/lib/translation/ka_ge.dart b/lib/translation/ka_ge.dart index 2a92248..2a8b079 100644 --- a/lib/translation/ka_ge.dart +++ b/lib/translation/ka_ge.dart @@ -35,6 +35,8 @@ class KaGe { 'thunderstorm': 'ჭექა-ქუხილი', 'kph': 'კმ/სთ', 'mph': 'მილი/სთ', + 'm/s': 'მ/წმ', + 'mmHg': 'მმHg', 'mi': 'მილი', 'km': 'კმ', 'inch': 'ინჩი', diff --git a/lib/translation/ko_kr.dart b/lib/translation/ko_kr.dart index b47dea5..30f3632 100644 --- a/lib/translation/ko_kr.dart +++ b/lib/translation/ko_kr.dart @@ -32,6 +32,8 @@ class KoKr { 'thunderstorm': '천둥번개', 'kph': 'km/h', 'mph': 'mph', + 'm/s': '미터/초', + 'mmHg': '밀리미터 수은주', 'mi': 'mi', 'km': 'km', 'inch': '인치', diff --git a/lib/translation/nl_nl.dart b/lib/translation/nl_nl.dart index 9956b05..056e623 100644 --- a/lib/translation/nl_nl.dart +++ b/lib/translation/nl_nl.dart @@ -35,6 +35,8 @@ class NlNl { 'thunderstorm': 'Onweersbui', 'kph': 'km/h', 'mph': 'mph', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'mi': 'mi', 'km': 'km', 'inch': 'inch', diff --git a/lib/translation/pl_pl.dart b/lib/translation/pl_pl.dart index e89f868..58a57eb 100644 --- a/lib/translation/pl_pl.dart +++ b/lib/translation/pl_pl.dart @@ -35,6 +35,8 @@ class PlPl { 'thunderstorm': 'Burza z piorunami', 'kph': 'km/h', 'mph': 'mph', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'mi': 'mi', 'km': 'km', 'inch': 'inch', diff --git a/lib/translation/pt_br.dart b/lib/translation/pt_br.dart index f4c4898..d36edb6 100644 --- a/lib/translation/pt_br.dart +++ b/lib/translation/pt_br.dart @@ -35,6 +35,8 @@ class PtBr { 'thunderstorm': 'Tempestade', 'kph': 'km/h', 'mph': 'mph', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'mi': 'mi', 'km': 'km', 'inch': 'inch', diff --git a/lib/translation/ro_ro.dart b/lib/translation/ro_ro.dart index 3fbf2d8..5dd3d47 100644 --- a/lib/translation/ro_ro.dart +++ b/lib/translation/ro_ro.dart @@ -35,6 +35,8 @@ class RoRo { 'thunderstorm': 'Furtună', 'kph': 'km/h', 'mph': 'mph', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'mi': 'mi', 'km': 'km', 'inch': 'inch', diff --git a/lib/translation/ru_ru.dart b/lib/translation/ru_ru.dart index 8f5915c..84a98ff 100644 --- a/lib/translation/ru_ru.dart +++ b/lib/translation/ru_ru.dart @@ -34,6 +34,8 @@ class RuRu { 'snow': 'Снег', 'thunderstorm': 'Гроза', 'kph': 'км/ч', + 'm/s': 'м/с', + 'mmHg': 'мм рт. ст.', 'mph': 'миль/ч', 'mi': 'миль', 'km': 'км', diff --git a/lib/translation/sk_sk.dart b/lib/translation/sk_sk.dart index 3a09a15..26f47b6 100644 --- a/lib/translation/sk_sk.dart +++ b/lib/translation/sk_sk.dart @@ -35,6 +35,8 @@ class SkSk { 'thunderstorm': 'Búrka', 'kph': 'km/h', 'mph': 'mph', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'mi': 'mi', 'km': 'km', 'inch': 'inch', diff --git a/lib/translation/tr_tr.dart b/lib/translation/tr_tr.dart index 47f17d5..19c6a54 100644 --- a/lib/translation/tr_tr.dart +++ b/lib/translation/tr_tr.dart @@ -35,6 +35,8 @@ class TrTr { 'thunderstorm': 'Gök Gürültülü Fırtına', 'kph': 'km/sa', 'mph': 'mil/sa', + 'm/s': 'm/s', + 'mmHg': 'mmHg', 'mi': 'mil', 'km': 'km', 'inch': 'inç', diff --git a/lib/translation/ur_pk.dart b/lib/translation/ur_pk.dart index bc9e8a6..bfcf872 100644 --- a/lib/translation/ur_pk.dart +++ b/lib/translation/ur_pk.dart @@ -35,6 +35,8 @@ class UrPk { 'thunderstorm': 'طوفانی بارش', 'kph': 'کلومیٹر فی گھنٹہ', 'mph': 'میل فی گھنٹہ', + 'm/s': 'میٹر/سیکنڈ', + 'mmHg': 'ملی میٹر مرکری', 'mi': 'میل', 'km': 'کلومیٹر', 'inch': 'انچ', diff --git a/lib/translation/zh_ch.dart b/lib/translation/zh_ch.dart index b897c28..6678b68 100644 --- a/lib/translation/zh_ch.dart +++ b/lib/translation/zh_ch.dart @@ -32,6 +32,8 @@ class ZhCh { 'thunderstorm': '雷暴', 'kph': '千米/小时', 'mph': '英里/小时', + 'm/s': '米/秒', + 'mmHg': '毫米汞柱', 'mi': '英里', 'km': '千米', 'inch': '英寸', diff --git a/lib/translation/zh_tw.dart b/lib/translation/zh_tw.dart index 9b1d448..68c6948 100644 --- a/lib/translation/zh_tw.dart +++ b/lib/translation/zh_tw.dart @@ -32,6 +32,8 @@ class ZhTw { 'thunderstorm': '雷暴', 'kph': '公里/時', 'mph': '英里/時', + 'm/s': '米/秒', + 'mmHg': '毫米汞柱', 'mi': '英里', 'km': '公里', 'inch': '英呎', diff --git a/pubspec.lock b/pubspec.lock index c18b7b8..3184876 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -602,10 +602,10 @@ packages: dependency: "direct main" description: name: internet_connection_checker_plus - sha256: "116a5473ef8b3eadc4f07257d2719885aec1626c54fb043c47e3deda659dbabb" + sha256: ea3f14695e5c2baa6daba5121a971338a69e7d615cbf1e47ae39f31234cc668c url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.5.1" intl: dependency: "direct main" description: @@ -794,10 +794,10 @@ packages: dependency: "direct main" description: name: path_provider - sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161 + sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" path_provider_android: dependency: transitive description: @@ -1063,10 +1063,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "678979703e10d7862c551c736fe6b9f185261bddf141b46672063b99790bc700" + sha256: "94d8ad05f44c6d4e2ffe5567ab4d741b82d62e3c8e288cc1fcea45965edf47c9" url: "https://pub.dev" source: hosted - version: "6.3.7" + version: "6.3.8" url_launcher_ios: dependency: transitive description: @@ -1103,10 +1103,10 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: "8d9e750d8c9338601e709cd0885f95825086bd8b642547f26bda435aade95d8a" + sha256: a36e2d7981122fa185006b216eb6b5b97ede3f9a54b7a511bc966971ab98d049 url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" url_launcher_windows: dependency: transitive description: @@ -1175,10 +1175,10 @@ packages: dependency: transitive description: name: win32 - sha256: a79dbe579cb51ecd6d30b17e0cae4e0ea15e2c0e66f69ad4198f22a6789e94f4 + sha256: "015002c060f1ae9f41a818f2d5640389cc05283e368be19dc8d77cecb43c40c9" url: "https://pub.dev" source: hosted - version: "5.5.1" + version: "5.5.3" win32_registry: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 3ebee91..b709a74 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -33,7 +33,7 @@ dependencies: git: url: https://github.com/payam-zahedi/flutter-glow.git dynamic_color: ^1.7.0 - path_provider: ^2.1.3 + path_provider: ^2.1.4 # quick_settings: ^1.0.1 json_annotation: ^4.9.0 flutter_timezone: ^2.1.0 @@ -50,7 +50,7 @@ dependencies: flutter_hsvcolor_picker: ^1.5.1 scrollable_positioned_list: ^0.3.8 flutter_local_notifications: ^17.2.1+2 - internet_connection_checker_plus: ^2.5.0 + internet_connection_checker_plus: ^2.5.1 # Uncomment this for publishing FLOSS variant # dependency_overrides: