added uv-index, cloudcover, dynamic_color

This commit is contained in:
Yoshi 2023-04-16 23:24:01 +03:00
parent 16261dd7db
commit c0e865e66e
13 changed files with 308 additions and 79 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Before After
Before After

View file

@ -73,7 +73,7 @@ class WeatherAPI {
Future<Iterable<Result>> getSuggestions(String query, Locale? locale) async {
final url =
'https://geocoding-api.open-meteo.com/v1/search?name=$query&count=10&language=${locale?.languageCode}&format=json';
'https://geocoding-api.open-meteo.com/v1/search?name=$query&count=5&language=${locale?.languageCode}&format=json';
try {
Response response = await dioLocation.get(url);
if (response.statusCode == 200) {

View file

@ -9,6 +9,7 @@ class Settings {
bool? theme;
bool location = false;
bool notifications = false;
bool materialColor = false;
String measurements = 'metric';
String degrees = 'celsius';
String timeformat = '24';

View file

@ -7,7 +7,7 @@ part of 'weather.dart';
// **************************************************************************
// coverage:ignore-file
// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters
// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types
extension GetSettingsCollection on Isar {
IsarCollection<Settings> get settings => this.collection();
@ -27,28 +27,33 @@ const SettingsSchema = CollectionSchema(
name: r'location',
type: IsarType.bool,
),
r'measurements': PropertySchema(
r'materialColor': PropertySchema(
id: 2,
name: r'materialColor',
type: IsarType.bool,
),
r'measurements': PropertySchema(
id: 3,
name: r'measurements',
type: IsarType.string,
),
r'notifications': PropertySchema(
id: 3,
id: 4,
name: r'notifications',
type: IsarType.bool,
),
r'onboard': PropertySchema(
id: 4,
id: 5,
name: r'onboard',
type: IsarType.bool,
),
r'theme': PropertySchema(
id: 5,
id: 6,
name: r'theme',
type: IsarType.bool,
),
r'timeformat': PropertySchema(
id: 6,
id: 7,
name: r'timeformat',
type: IsarType.string,
)
@ -64,7 +69,7 @@ const SettingsSchema = CollectionSchema(
getId: _settingsGetId,
getLinks: _settingsGetLinks,
attach: _settingsAttach,
version: '3.0.5',
version: '3.1.0',
);
int _settingsEstimateSize(
@ -87,11 +92,12 @@ void _settingsSerialize(
) {
writer.writeString(offsets[0], object.degrees);
writer.writeBool(offsets[1], object.location);
writer.writeString(offsets[2], object.measurements);
writer.writeBool(offsets[3], object.notifications);
writer.writeBool(offsets[4], object.onboard);
writer.writeBool(offsets[5], object.theme);
writer.writeString(offsets[6], object.timeformat);
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);
}
Settings _settingsDeserialize(
@ -104,11 +110,12 @@ Settings _settingsDeserialize(
object.degrees = reader.readString(offsets[0]);
object.id = id;
object.location = reader.readBool(offsets[1]);
object.measurements = reader.readString(offsets[2]);
object.notifications = reader.readBool(offsets[3]);
object.onboard = reader.readBool(offsets[4]);
object.theme = reader.readBoolOrNull(offsets[5]);
object.timeformat = reader.readString(offsets[6]);
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]);
return object;
}
@ -124,14 +131,16 @@ P _settingsDeserializeProp<P>(
case 1:
return (reader.readBool(offset)) as P;
case 2:
return (reader.readString(offset)) as P;
case 3:
return (reader.readBool(offset)) as P;
case 3:
return (reader.readString(offset)) as P;
case 4:
return (reader.readBool(offset)) as P;
case 5:
return (reader.readBoolOrNull(offset)) as P;
return (reader.readBool(offset)) as P;
case 6:
return (reader.readBoolOrNull(offset)) as P;
case 7:
return (reader.readString(offset)) as P;
default:
throw IsarError('Unknown property with id $propertyId');
@ -419,6 +428,16 @@ extension SettingsQueryFilter
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition> materialColorEqualTo(
bool value) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'materialColor',
value: value,
));
});
}
QueryBuilder<Settings, Settings, QAfterFilterCondition> measurementsEqualTo(
String value, {
bool caseSensitive = true,
@ -762,6 +781,18 @@ extension SettingsQuerySortBy on QueryBuilder<Settings, Settings, QSortBy> {
});
}
QueryBuilder<Settings, Settings, QAfterSortBy> sortByMaterialColor() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'materialColor', Sort.asc);
});
}
QueryBuilder<Settings, Settings, QAfterSortBy> sortByMaterialColorDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'materialColor', Sort.desc);
});
}
QueryBuilder<Settings, Settings, QAfterSortBy> sortByMeasurements() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'measurements', Sort.asc);
@ -861,6 +892,18 @@ extension SettingsQuerySortThenBy
});
}
QueryBuilder<Settings, Settings, QAfterSortBy> thenByMaterialColor() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'materialColor', Sort.asc);
});
}
QueryBuilder<Settings, Settings, QAfterSortBy> thenByMaterialColorDesc() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'materialColor', Sort.desc);
});
}
QueryBuilder<Settings, Settings, QAfterSortBy> thenByMeasurements() {
return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'measurements', Sort.asc);
@ -937,6 +980,12 @@ extension SettingsQueryWhereDistinct
});
}
QueryBuilder<Settings, Settings, QDistinct> distinctByMaterialColor() {
return QueryBuilder.apply(this, (query) {
return query.addDistinctBy(r'materialColor');
});
}
QueryBuilder<Settings, Settings, QDistinct> distinctByMeasurements(
{bool caseSensitive = true}) {
return QueryBuilder.apply(this, (query) {
@ -990,6 +1039,12 @@ extension SettingsQueryProperty
});
}
QueryBuilder<Settings, bool, QQueryOperations> materialColorProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'materialColor');
});
}
QueryBuilder<Settings, String, QQueryOperations> measurementsProperty() {
return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'measurements');
@ -1022,7 +1077,7 @@ extension SettingsQueryProperty
}
// coverage:ignore-file
// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters
// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types
extension GetMainWeatherCacheCollection on Isar {
IsarCollection<MainWeatherCache> get mainWeatherCaches => this.collection();
@ -1154,7 +1209,7 @@ const MainWeatherCacheSchema = CollectionSchema(
getId: _mainWeatherCacheGetId,
getLinks: _mainWeatherCacheGetLinks,
attach: _mainWeatherCacheAttach,
version: '3.0.5',
version: '3.1.0',
);
int _mainWeatherCacheEstimateSize(
@ -5818,7 +5873,7 @@ extension MainWeatherCacheQueryProperty
}
// coverage:ignore-file
// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters
// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types
extension GetLocationCacheCollection on Isar {
IsarCollection<LocationCache> get locationCaches => this.collection();
@ -5860,7 +5915,7 @@ const LocationCacheSchema = CollectionSchema(
getId: _locationCacheGetId,
getLinks: _locationCacheGetLinks,
attach: _locationCacheAttach,
version: '3.0.5',
version: '3.1.0',
);
int _locationCacheEstimateSize(
@ -6737,7 +6792,7 @@ extension LocationCacheQueryProperty
}
// coverage:ignore-file
// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters
// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types
extension GetWeatherCardCollection on Isar {
IsarCollection<WeatherCard> get weatherCards => this.collection();
@ -6889,7 +6944,7 @@ const WeatherCardSchema = CollectionSchema(
getId: _weatherCardGetId,
getLinks: _weatherCardGetLinks,
attach: _weatherCardAttach,
version: '3.0.5',
version: '3.1.0',
);
int _weatherCardEstimateSize(

View file

@ -43,6 +43,23 @@ class _SettingsPageState extends State<SettingsPage> {
),
// SettingLinks(
// icon: Icon(
// Iconsax.colorfilter,
// color: context.theme.iconTheme.color,
// ),
// text: 'materialColor'.tr,
// switcher: true,
// dropdown: false,
// value: settings.materialColor,
// onChange: (value) {
// isar.writeTxn(() async {
// settings.materialColor = value;
// isar.settings.put(settings);
// });
// setState(() {});
// },
// ),
// SettingLinks(
// icon: Icon(
// Iconsax.notification,
// color: context.theme.iconTheme.color,
// ),

View file

@ -268,11 +268,61 @@ class _WeatherPageState extends State<WeatherPage> {
),
],
),
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/uv-index.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,
),
],
),
],
),
)
: const MyShimmer(
hight: 350,
hight: 400,
edgeInsetsMargin: EdgeInsets.only(bottom: 15),
),
),

View file

@ -266,6 +266,40 @@ class _WeatherCardPageState extends State<WeatherCardPage> {
),
],
),
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/uv-index.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,
),
],
),
],
),
),

View file

@ -1,4 +1,5 @@
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_localizations/flutter_localizations.dart';
@ -70,6 +71,8 @@ class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return DynamicColorBuilder(
builder: (lightColorScheme, darkColorScheme) {
return GetMaterialApp(
themeMode: themeController.theme,
theme: RainTheme.lightTheme,
@ -101,8 +104,11 @@ class MyApp extends StatelessWidget {
return supportedLocales.first;
},
debugShowCheckedModeBanner: false,
home:
settings.onboard == false ? const OnboardingPage() : const HomePage(),
home: settings.onboard == false
? const OnboardingPage()
: const HomePage(),
);
},
);
}
}

View file

@ -82,6 +82,14 @@ class Translation extends Translations {
'timeformat': 'Формат времени',
'12': '12-часовой',
'24': '24-часовой',
'cloudcover': 'Облачный покров',
'uvIndex': 'УФ-индекс',
'materialColor': 'Использовать системный цвет (Android 12+)',
'uvLow': 'Низкий',
'uvAverage': 'Умеренный',
'uvHigh': 'Высокий',
'uvVeryHigh': 'Очень высокий',
'uvExtreme': 'Экстремальный',
},
'en_US': {
'start': 'Get Started',
@ -162,6 +170,14 @@ class Translation extends Translations {
'timeformat': 'Time format',
'12': '12-hour',
'24': '24-hour',
'cloudcover': 'Сloudcover',
'uvIndex': 'UV-index',
'materialColor': 'Use system color (Android 12+)',
'uvLow': 'Low',
'uvAverage': 'Moderate',
'uvHigh': 'High',
'uvVeryHigh': 'Very high',
'uvExtreme': 'Extreme',
},
'fr_FR': {
'start': 'Démarrer',
@ -243,6 +259,14 @@ class Translation extends Translations {
'timeformat': 'Format horaire',
'12': '12 heures',
'24': '24 heures',
'cloudcover': 'Сouverture nuageuse',
'uvIndex': 'UV-indice',
'materialColor': 'Utiliser la couleur du système (Android 12+)',
'uvLow': 'Faible',
'uvAverage': 'Modéré',
'uvHigh': 'Élevé',
'uvVeryHigh': 'Très élevé',
'uvExtreme': 'Extrême',
},
'it_IT': {
'start': 'Clicca per iniziare',
@ -302,7 +326,8 @@ class Translation extends Translations {
'district': 'Regione',
'noWeatherCard': 'Aggiungi una città',
'deletedCardWeather': 'Rimozione della città',
'deletedCardWeatherQuery': 'Sei sicuro di voler rimuovere questa città?',
'deletedCardWeatherQuery':
'Sei sicuro di voler rimuovere questa città?',
'delete': 'Elimina',
'cancel': 'Annulla',
'time': 'Orario locale',
@ -323,6 +348,14 @@ class Translation extends Translations {
'timeformat': 'Formato ora',
'12': '12 ore',
'24': '24 ore',
'cloudcover': 'Copertura nuvolosa',
'uvIndex': 'UV-indice',
'materialColor': 'Usare il colore di sistema (Android 12+)',
'uvLow': 'Basso',
'uvAverage': 'Moderato',
'uvHigh': 'Alto',
'uvVeryHigh': 'Molto alto',
'uvExtreme': 'Estremo',
},
'de_DE': {
'start': 'Los gehts',
@ -404,6 +437,14 @@ class Translation extends Translations {
'timeformat': 'Zeitformat',
'12': '12-stunden',
'24': '24-stunden',
'cloudcover': 'Wolkenbedeckung',
'uvIndex': 'UV-index',
'materialColor': 'Systemfarbe verwenden (Android 12+)',
'uvLow': 'Niedrig',
'uvAverage': 'Mäßig',
'uvHigh': 'Hoch',
'uvVeryHigh': 'Sehr hoch',
'uvExtreme': 'Extrem',
},
'tr_TR': {
'start': 'Başlat',
@ -484,6 +525,14 @@ class Translation extends Translations {
'timeformat': 'Saat biçimi',
'12': '12 saat',
'24': '24 saat',
'cloudcover': 'Bulut örtüsü',
'uvIndex': 'UV-indeksi',
'materialColor': 'Sistem rengini kullan (Android 12+)',
'uvLow': 'Düşük',
'uvAverage': 'Orta',
'uvHigh': 'Yüksek',
'uvVeryHigh': 'Çok yüksek',
'uvExtreme': 'ırı',
},
'pt_BR': {
'start': 'Iniciar',
@ -564,6 +613,14 @@ class Translation extends Translations {
'timeformat': 'Formato de hora',
'12': '12 horas',
'24': '24 horas',
'cloudcover': 'Сobertura de nuvens',
'uvIndex': 'UV-índice',
'materialColor': 'Usar cor do sistema (Android 12+)',
'uvLow': 'Baixo',
'uvAverage': 'Moderado',
'uvHigh': 'Alto',
'uvVeryHigh': 'Muito alto',
'uvExtreme': 'Extremo',
},
'es_ES': {
'start': 'Empezar',
@ -601,7 +658,8 @@ class Translation extends Translations {
'hPa': 'hPa',
'settings': 'Ajustes',
'no_inter': 'Sin conexión a Internet',
'on_inter': 'Conéctate a Internet para obtener información meteorológica.',
'on_inter':
'Conéctate a Internet para obtener información meteorológica.',
'location': 'Ubicación',
'no_location':
'Activa la localización para obtener información meteorológica para tu ubicación actual.',
@ -644,6 +702,14 @@ class Translation extends Translations {
'timeformat': 'Formato de hora',
'12': '12 horas',
'24': '24 horas',
'cloudcover': 'Cobertura de nubes',
'uvIndex': 'UV-índice',
'materialColor': 'Usar color del sistema (Android 12+)',
'uvLow': 'Bajo',
'uvAverage': 'Moderado',
'uvHigh': 'Alto',
'uvVeryHigh': 'Muy alto',
'uvExtreme': 'Extremo',
},
};
}

View file

@ -133,10 +133,10 @@ packages:
dependency: transitive
description:
name: cli_util
sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c"
sha256: b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7
url: "https://pub.dev"
source: hosted
version: "0.3.5"
version: "0.4.0"
clock:
dependency: transitive
description:
@ -298,18 +298,18 @@ packages:
dependency: "direct main"
description:
name: flutter_glow
sha256: b69b6306f87b496d34da7f0b88b41b324cb75255516f1f6913321e463eb66b31
sha256: "158f041ddbc18f199dcfd9375d40b983a2bf887752598cdf7b41ac6ff36362bf"
url: "https://pub.dev"
source: hosted
version: "0.2.0"
version: "0.3.0"
flutter_launcher_icons:
dependency: "direct dev"
description:
name: flutter_launcher_icons
sha256: "02dcaf49d405f652b7160e882bacfc02cb497041bb2eab2a49b1c393cf9aac12"
sha256: "8546a9b9510e1a260b8d55fb2d07096e8a8552c6a2c2bf529100344894b2b41a"
url: "https://pub.dev"
source: hosted
version: "0.12.0"
version: "0.13.0"
flutter_lints:
dependency: "direct dev"
description:
@ -529,26 +529,26 @@ packages:
dependency: "direct main"
description:
name: isar
sha256: "5be35dbc489880fccc535da3d1c4b3f5fdeee6ebfcacd4b149e39e803c4029cd"
sha256: aef9b9dd6ea4f5fca1f6fdc38e76010e4762cdb1400169d99a0b42e8f71e4f8a
url: "https://pub.dev"
source: hosted
version: "3.0.5"
version: "3.1.0"
isar_flutter_libs:
dependency: "direct main"
description:
name: isar_flutter_libs
sha256: "9794524734856a8a3629652f9f359b66e3fea3cebeec4dbdeb3e3a8fb253073e"
sha256: "8dcfb6889e68d9f0ad9980d77b3903782811645d848786e6ea6518ea6058e45d"
url: "https://pub.dev"
source: hosted
version: "3.0.5"
version: "3.1.0"
isar_generator:
dependency: "direct dev"
description:
name: isar_generator
sha256: ee4ab5d5b251bc7e86e1257793b57af100065831f00f3a12404b177ae53c2d69
sha256: "3813ddc78bff4d8328a5026a1c7af80a8c688719bf6fba6ec4b56f8772c5b8bf"
url: "https://pub.dev"
source: hosted
version: "3.0.5"
version: "3.1.0"
js:
dependency: transitive
description:

View file

@ -15,20 +15,20 @@ dependencies:
sdk: flutter
get: ^4.6.5
dio: ^5.1.1
isar: ^3.0.5
isar: ^3.1.0
intl: ^0.17.0
shimmer: ^2.0.0
iconsax: ^0.0.8
timezone: ^0.9.1
geocoding: ^2.1.0
geolocator: ^9.0.2
flutter_glow: ^0.2.0
flutter_glow: ^0.3.0
url_launcher: ^6.1.10
dynamic_color: ^1.6.3
path_provider: ^2.0.14
package_info_plus: ^3.1.0
connectivity_plus: ^3.0.4
isar_flutter_libs: ^3.0.5
isar_flutter_libs: ^3.1.0
flutter_displaymode: ^0.5.0
lat_lng_to_timezone: ^0.2.0
custom_navigation_bar: ^0.8.2
@ -40,9 +40,9 @@ dev_dependencies:
sdk: flutter
flutter_lints: ^2.0.1
build_runner: ^2.3.3
isar_generator: ^3.0.5
isar_generator: ^3.1.0
flutter_native_splash: ^2.2.19
flutter_launcher_icons: ^0.12.0
flutter_launcher_icons: ^0.13.0
flutter_icons:
android: true