From dd3339bc3bf43b12e09cb6199cf71f7a3fc53bf8 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Tue, 9 Jul 2024 23:03:40 +0300 Subject: [PATCH 01/41] issue #185 --- .../cards/widgets/create_card_weather.dart | 393 ++--- lib/app/modules/settings/view/settings.dart | 1461 +++++++++-------- lib/main.dart | 34 +- lib/theme/theme.dart | 27 +- lib/utils/device_info.dart | 31 + macos/Flutter/GeneratedPluginRegistrant.swift | 2 + pubspec.lock | 61 +- pubspec.yaml | 8 +- 8 files changed, 1067 insertions(+), 950 deletions(-) create mode 100644 lib/utils/device_info.dart diff --git a/lib/app/modules/cards/widgets/create_card_weather.dart b/lib/app/modules/cards/widgets/create_card_weather.dart index 8983091..6e3254a 100644 --- a/lib/app/modules/cards/widgets/create_card_weather.dart +++ b/lib/app/modules/cards/widgets/create_card_weather.dart @@ -45,205 +45,208 @@ class _CreateWeatherCardState extends State { @override Widget build(BuildContext context) { const kTextFieldElevation = 4.0; - return Form( - key: formKey, - child: SingleChildScrollView( - child: Stack( - children: [ - Padding( - padding: EdgeInsets.only( - bottom: MediaQuery.of(context).viewInsets.bottom, - ), - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisSize: MainAxisSize.min, - children: [ - Padding( - padding: const EdgeInsets.fromLTRB(10, 10, 10, 0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - IconButton( - onPressed: () { - Get.back(); - }, - icon: const Icon( - Iconsax.close_square, - size: 18, - ), - ), - Text( - 'create'.tr, - style: context.textTheme.titleLarge?.copyWith( - fontSize: 20, - ), - textAlign: TextAlign.center, - ), - IconButton( - onPressed: () async { - if (formKey.currentState!.validate()) { - textTrim(_controllerLat); - textTrim(_controllerLon); - textTrim(_controllerCity); - textTrim(_controllerDistrict); - setState(() => isLoading = true); - await weatherController.addCardWeather( - double.parse(_controllerLat.text), - double.parse(_controllerLon.text), - _controllerCity.text, - _controllerDistrict.text, - ); - setState(() => isLoading = false); + return Padding( + padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), + child: Form( + key: formKey, + child: SingleChildScrollView( + child: Stack( + children: [ + Padding( + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).viewInsets.bottom, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.fromLTRB(10, 10, 10, 0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + IconButton( + onPressed: () { Get.back(); - } - }, - icon: const Icon( - Iconsax.tick_square, - size: 18, - ), - ), - ], - ), - ), - RawAutocomplete( - focusNode: _focusNode, - textEditingController: _controller, - fieldViewBuilder: (BuildContext context, - TextEditingController fieldTextEditingController, - FocusNode fieldFocusNode, - VoidCallback onFieldSubmitted) { - return MyTextForm( - elevation: kTextFieldElevation, - labelText: 'search'.tr, - type: TextInputType.text, - icon: const Icon(Iconsax.global_search), - controller: _controller, - margin: - const EdgeInsets.only(left: 10, right: 10, top: 10), - focusNode: _focusNode, - ); - }, - optionsBuilder: (TextEditingValue textEditingValue) { - if (textEditingValue.text.isEmpty) { - return const Iterable.empty(); - } - return WeatherAPI() - .getCity(textEditingValue.text, locale); - }, - onSelected: (Result selection) => fillController(selection), - displayStringForOption: (Result option) => - '${option.name}, ${option.admin1}', - optionsViewBuilder: (BuildContext context, - AutocompleteOnSelected onSelected, - Iterable options) { - return Padding( - padding: const EdgeInsets.symmetric(horizontal: 10), - child: Align( - alignment: Alignment.topCenter, - child: Material( - borderRadius: BorderRadius.circular(20), - elevation: 4.0, - child: ListView.builder( - padding: EdgeInsets.zero, - shrinkWrap: true, - itemCount: options.length, - itemBuilder: (BuildContext context, int index) { - final Result option = options.elementAt(index); - return InkWell( - onTap: () => onSelected(option), - child: ListTile( - title: Text( - '${option.name}, ${option.admin1}', - style: context.textTheme.labelLarge, - ), - ), - ); - }, + }, + icon: const Icon( + Iconsax.close_square, + size: 18, ), ), - ), - ); - }, - ), - MyTextForm( - elevation: kTextFieldElevation, - controller: _controllerLat, - labelText: 'lat'.tr, - type: TextInputType.number, - icon: const Icon(Iconsax.location), - margin: const EdgeInsets.only(left: 10, right: 10, top: 10), - validator: (value) { - if (value == null || value.isEmpty) { - return 'validateValue'.tr; - } - double? numericValue = double.tryParse(value); - if (numericValue == null) { - return 'validateNumber'.tr; - } - if (numericValue < -90 || numericValue > 90) { - return 'validate90'.tr; - } - return null; - }, - ), - MyTextForm( - elevation: kTextFieldElevation, - controller: _controllerLon, - labelText: 'lon'.tr, - type: TextInputType.number, - icon: const Icon(Iconsax.location), - margin: const EdgeInsets.only(left: 10, right: 10, top: 10), - validator: (value) { - if (value == null || value.isEmpty) { - return 'validateValue'.tr; - } - double? numericValue = double.tryParse(value); - if (numericValue == null) { - return 'validateNumber'.tr; - } - if (numericValue < -180 || numericValue > 180) { - return 'validate180'.tr; - } - return null; - }, - ), - MyTextForm( - elevation: kTextFieldElevation, - controller: _controllerCity, - labelText: 'city'.tr, - type: TextInputType.name, - icon: const Icon(Icons.location_city_rounded), - margin: const EdgeInsets.only(left: 10, right: 10, top: 10), - validator: (value) { - if (value == null || value.isEmpty) { - return 'validateName'.tr; - } - return null; - }, - ), - MyTextForm( - elevation: kTextFieldElevation, - controller: _controllerDistrict, - labelText: 'district'.tr, - type: TextInputType.streetAddress, - icon: const Icon(Iconsax.global), - margin: const EdgeInsets.only(left: 10, right: 10, top: 10), - validator: (value) { - if (value == null || value.isEmpty) { - return 'validateName'.tr; - } - return null; - }, - ), - const SizedBox(height: 20), - ], + Text( + 'create'.tr, + style: context.textTheme.titleLarge?.copyWith( + fontSize: 20, + ), + textAlign: TextAlign.center, + ), + IconButton( + onPressed: () async { + if (formKey.currentState!.validate()) { + textTrim(_controllerLat); + textTrim(_controllerLon); + textTrim(_controllerCity); + textTrim(_controllerDistrict); + setState(() => isLoading = true); + await weatherController.addCardWeather( + double.parse(_controllerLat.text), + double.parse(_controllerLon.text), + _controllerCity.text, + _controllerDistrict.text, + ); + setState(() => isLoading = false); + Get.back(); + } + }, + icon: const Icon( + Iconsax.tick_square, + size: 18, + ), + ), + ], + ), + ), + RawAutocomplete( + focusNode: _focusNode, + textEditingController: _controller, + fieldViewBuilder: (BuildContext context, + TextEditingController fieldTextEditingController, + FocusNode fieldFocusNode, + VoidCallback onFieldSubmitted) { + return MyTextForm( + elevation: kTextFieldElevation, + labelText: 'search'.tr, + type: TextInputType.text, + icon: const Icon(Iconsax.global_search), + controller: _controller, + margin: + const EdgeInsets.only(left: 10, right: 10, top: 10), + focusNode: _focusNode, + ); + }, + optionsBuilder: (TextEditingValue textEditingValue) { + if (textEditingValue.text.isEmpty) { + return const Iterable.empty(); + } + return WeatherAPI() + .getCity(textEditingValue.text, locale); + }, + onSelected: (Result selection) => fillController(selection), + displayStringForOption: (Result option) => + '${option.name}, ${option.admin1}', + optionsViewBuilder: (BuildContext context, + AutocompleteOnSelected onSelected, + Iterable options) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 10), + child: Align( + alignment: Alignment.topCenter, + child: Material( + borderRadius: BorderRadius.circular(20), + elevation: 4.0, + child: ListView.builder( + padding: EdgeInsets.zero, + shrinkWrap: true, + itemCount: options.length, + itemBuilder: (BuildContext context, int index) { + final Result option = options.elementAt(index); + return InkWell( + onTap: () => onSelected(option), + child: ListTile( + title: Text( + '${option.name}, ${option.admin1}', + style: context.textTheme.labelLarge, + ), + ), + ); + }, + ), + ), + ), + ); + }, + ), + MyTextForm( + elevation: kTextFieldElevation, + controller: _controllerLat, + labelText: 'lat'.tr, + type: TextInputType.number, + icon: const Icon(Iconsax.location), + margin: const EdgeInsets.only(left: 10, right: 10, top: 10), + validator: (value) { + if (value == null || value.isEmpty) { + return 'validateValue'.tr; + } + double? numericValue = double.tryParse(value); + if (numericValue == null) { + return 'validateNumber'.tr; + } + if (numericValue < -90 || numericValue > 90) { + return 'validate90'.tr; + } + return null; + }, + ), + MyTextForm( + elevation: kTextFieldElevation, + controller: _controllerLon, + labelText: 'lon'.tr, + type: TextInputType.number, + icon: const Icon(Iconsax.location), + margin: const EdgeInsets.only(left: 10, right: 10, top: 10), + validator: (value) { + if (value == null || value.isEmpty) { + return 'validateValue'.tr; + } + double? numericValue = double.tryParse(value); + if (numericValue == null) { + return 'validateNumber'.tr; + } + if (numericValue < -180 || numericValue > 180) { + return 'validate180'.tr; + } + return null; + }, + ), + MyTextForm( + elevation: kTextFieldElevation, + controller: _controllerCity, + labelText: 'city'.tr, + type: TextInputType.name, + icon: const Icon(Icons.location_city_rounded), + margin: const EdgeInsets.only(left: 10, right: 10, top: 10), + validator: (value) { + if (value == null || value.isEmpty) { + return 'validateName'.tr; + } + return null; + }, + ), + MyTextForm( + elevation: kTextFieldElevation, + controller: _controllerDistrict, + labelText: 'district'.tr, + type: TextInputType.streetAddress, + icon: const Icon(Iconsax.global), + margin: const EdgeInsets.only(left: 10, right: 10, top: 10), + validator: (value) { + if (value == null || value.isEmpty) { + return 'validateName'.tr; + } + return null; + }, + ), + const SizedBox(height: 20), + ], + ), ), - ), - if (isLoading) - const Center( - child: CircularProgressIndicator(), - ), - ], + if (isLoading) + const Center( + child: CircularProgressIndicator(), + ), + ], + ), ), ), ); diff --git a/lib/app/modules/settings/view/settings.dart b/lib/app/modules/settings/view/settings.dart index 9f03999..d97259c 100644 --- a/lib/app/modules/settings/view/settings.dart +++ b/lib/app/modules/settings/view/settings.dart @@ -69,82 +69,85 @@ class _SettingsPageState extends State { showModalBottomSheet( context: context, builder: (BuildContext context) { - return StatefulBuilder( - builder: (BuildContext context, setState) { - return SingleChildScrollView( - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisSize: MainAxisSize.min, - children: [ - Padding( - padding: const EdgeInsets.symmetric(vertical: 15), - child: Text( - 'appearance'.tr, - style: context.textTheme.titleLarge?.copyWith( - fontSize: 20, + return Padding( + padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), + child: StatefulBuilder( + builder: (BuildContext context, setState) { + return SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.symmetric(vertical: 15), + child: Text( + 'appearance'.tr, + style: context.textTheme.titleLarge?.copyWith( + fontSize: 20, + ), ), ), - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.moon), - text: 'theme'.tr, - dropdown: true, - dropdownName: settings.theme?.tr, - dropdownList: [ - 'system'.tr, - 'dark'.tr, - 'light'.tr - ], - dropdownCange: (String? newValue) { - final newThemeMode = newValue?.tr; - final darkTheme = 'dark'.tr; - final systemTheme = 'system'.tr; - ThemeMode themeMode = - newThemeMode == systemTheme - ? ThemeMode.system - : newThemeMode == darkTheme - ? ThemeMode.dark - : ThemeMode.light; - String theme = newThemeMode == systemTheme - ? 'system' - : newThemeMode == darkTheme - ? 'dark' - : 'light'; - themeController.saveTheme(theme); - themeController.changeThemeMode(themeMode); - setState(() {}); - }, - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.mobile), - text: 'amoledTheme'.tr, - switcher: true, - value: settings.amoledTheme, - onChange: (value) { - themeController.saveOledTheme(value); - MyApp.updateAppState(context, - newAmoledTheme: value); - }, - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.colorfilter), - text: 'materialColor'.tr, - switcher: true, - value: settings.materialColor, - onChange: (value) { - themeController.saveMaterialTheme(value); - MyApp.updateAppState(context, - newMaterialColor: value); - }, - ), - const SizedBox(height: 10), - ], - ), - ); - }, + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.moon), + text: 'theme'.tr, + dropdown: true, + dropdownName: settings.theme?.tr, + dropdownList: [ + 'system'.tr, + 'dark'.tr, + 'light'.tr + ], + dropdownCange: (String? newValue) { + final newThemeMode = newValue?.tr; + final darkTheme = 'dark'.tr; + final systemTheme = 'system'.tr; + ThemeMode themeMode = + newThemeMode == systemTheme + ? ThemeMode.system + : newThemeMode == darkTheme + ? ThemeMode.dark + : ThemeMode.light; + String theme = newThemeMode == systemTheme + ? 'system' + : newThemeMode == darkTheme + ? 'dark' + : 'light'; + themeController.saveTheme(theme); + themeController.changeThemeMode(themeMode); + setState(() {}); + }, + ), + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.mobile), + text: 'amoledTheme'.tr, + switcher: true, + value: settings.amoledTheme, + onChange: (value) { + themeController.saveOledTheme(value); + MyApp.updateAppState(context, + newAmoledTheme: value); + }, + ), + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.colorfilter), + text: 'materialColor'.tr, + switcher: true, + value: settings.materialColor, + onChange: (value) { + themeController.saveMaterialTheme(value); + MyApp.updateAppState(context, + newMaterialColor: value); + }, + ), + const SizedBox(height: 10), + ], + ), + ); + }, + ), ); }, ); @@ -157,268 +160,271 @@ class _SettingsPageState extends State { showModalBottomSheet( context: context, builder: (BuildContext context) { - return StatefulBuilder( - builder: (BuildContext context, setState) { - return SingleChildScrollView( - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisSize: MainAxisSize.min, - children: [ - Padding( - padding: const EdgeInsets.symmetric(vertical: 15), - child: Text( - 'functions'.tr, - style: context.textTheme.titleLarge?.copyWith( - fontSize: 20, + return Padding( + padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), + child: StatefulBuilder( + builder: (BuildContext context, setState) { + return SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.symmetric(vertical: 15), + child: Text( + 'functions'.tr, + style: context.textTheme.titleLarge?.copyWith( + fontSize: 20, + ), ), ), - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.map_1), - text: 'location'.tr, - switcher: true, - value: settings.location, - onChange: (value) async { - if (value) { - bool serviceEnabled = await Geolocator - .isLocationServiceEnabled(); - if (!serviceEnabled) { - if (!context.mounted) return; - await showAdaptiveDialog( - context: context, - builder: (BuildContext context) { - return AlertDialog.adaptive( - title: Text( - 'location'.tr, - style: context.textTheme.titleLarge, - ), - content: Text('no_location'.tr, - style: context - .textTheme.titleMedium), - actions: [ - TextButton( - onPressed: () => - Get.back(result: false), - child: Text( - 'cancel'.tr, - style: context - .textTheme.titleMedium - ?.copyWith( - color: - Colors.blueAccent), - ), - ), - TextButton( - onPressed: () { - Geolocator - .openLocationSettings(); - Get.back(result: true); - }, - child: Text( - 'settings'.tr, - style: context - .textTheme.titleMedium - ?.copyWith( - color: Colors.green), - ), - ), - ], - ); - }, - ); - - return; - } - weatherController.getCurrentLocation(); - } - isar.writeTxnSync(() { - settings.location = value; - isar.settings.putSync(settings); - }); - setState(() {}); - }, - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.notification_1), - text: 'notifications'.tr, - switcher: true, - value: settings.notifications, - onChange: (value) async { - final resultExact = - await flutterLocalNotificationsPlugin - .resolvePlatformSpecificImplementation< - AndroidFlutterLocalNotificationsPlugin>() - ?.requestExactAlarmsPermission(); - final result = Platform.isIOS - ? await flutterLocalNotificationsPlugin - .resolvePlatformSpecificImplementation< - IOSFlutterLocalNotificationsPlugin>() - ?.requestPermissions() - : await flutterLocalNotificationsPlugin - .resolvePlatformSpecificImplementation< - AndroidFlutterLocalNotificationsPlugin>() - ?.requestNotificationsPermission(); - if (result != null && resultExact != null) { - isar.writeTxnSync(() { - settings.notifications = value; - isar.settings.putSync(settings); - }); + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.map_1), + text: 'location'.tr, + switcher: true, + value: settings.location, + onChange: (value) async { if (value) { - weatherController.notification( - weatherController.mainWeather); - } else { - flutterLocalNotificationsPlugin.cancelAll(); + bool serviceEnabled = await Geolocator + .isLocationServiceEnabled(); + if (!serviceEnabled) { + if (!context.mounted) return; + await showAdaptiveDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog.adaptive( + title: Text( + 'location'.tr, + style: context.textTheme.titleLarge, + ), + content: Text('no_location'.tr, + style: context + .textTheme.titleMedium), + actions: [ + TextButton( + onPressed: () => + Get.back(result: false), + child: Text( + 'cancel'.tr, + style: context + .textTheme.titleMedium + ?.copyWith( + color: + Colors.blueAccent), + ), + ), + TextButton( + onPressed: () { + Geolocator + .openLocationSettings(); + Get.back(result: true); + }, + child: Text( + 'settings'.tr, + style: context + .textTheme.titleMedium + ?.copyWith( + color: Colors.green), + ), + ), + ], + ); + }, + ); + + return; + } + weatherController.getCurrentLocation(); } + isar.writeTxnSync(() { + settings.location = value; + isar.settings.putSync(settings); + }); setState(() {}); - } - }, - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.notification_status), - text: 'timeRange'.tr, - dropdown: true, - dropdownName: '$timeRange', - dropdownList: const [ - '1', - '2', - '3', - '4', - '5', - ], - dropdownCange: (String? newValue) { - isar.writeTxnSync(() { - settings.timeRange = int.parse(newValue!); - isar.settings.putSync(settings); - }); - MyApp.updateAppState(context, - newTimeRange: int.parse(newValue!)); - if (settings.notifications) { - flutterLocalNotificationsPlugin.cancelAll(); - weatherController.notification( - weatherController.mainWeather); - } - }, - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.timer_start), - text: 'timeStart'.tr, - info: true, - infoSettings: true, - infoWidget: _TextInfo( - info: settings.timeformat == '12' - ? DateFormat.jm(locale.languageCode).format( - DateFormat.Hm(locale.languageCode) - .parse(weatherController - .timeConvert(timeStart) - .format(context))) - : DateFormat.Hm(locale.languageCode).format( - DateFormat.Hm(locale.languageCode) - .parse(weatherController - .timeConvert(timeStart) - .format(context))), + }, ), - onPressed: () async { - final TimeOfDay? timeStartPicker = - await showTimePicker( - context: context, - initialTime: - weatherController.timeConvert(timeStart), - builder: (context, child) { - final Widget mediaQueryWrapper = MediaQuery( - data: MediaQuery.of(context).copyWith( - alwaysUse24HourFormat: - settings.timeformat == '12' - ? false - : true, - ), - child: child!, - ); - return mediaQueryWrapper; - }, - ); - if (timeStartPicker != null) { + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.notification_1), + text: 'notifications'.tr, + switcher: true, + value: settings.notifications, + onChange: (value) async { + final resultExact = + await flutterLocalNotificationsPlugin + .resolvePlatformSpecificImplementation< + AndroidFlutterLocalNotificationsPlugin>() + ?.requestExactAlarmsPermission(); + final result = Platform.isIOS + ? await flutterLocalNotificationsPlugin + .resolvePlatformSpecificImplementation< + IOSFlutterLocalNotificationsPlugin>() + ?.requestPermissions() + : await flutterLocalNotificationsPlugin + .resolvePlatformSpecificImplementation< + AndroidFlutterLocalNotificationsPlugin>() + ?.requestNotificationsPermission(); + if (result != null && resultExact != null) { + isar.writeTxnSync(() { + settings.notifications = value; + isar.settings.putSync(settings); + }); + if (value) { + weatherController.notification( + weatherController.mainWeather); + } else { + flutterLocalNotificationsPlugin.cancelAll(); + } + setState(() {}); + } + }, + ), + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.notification_status), + text: 'timeRange'.tr, + dropdown: true, + dropdownName: '$timeRange', + dropdownList: const [ + '1', + '2', + '3', + '4', + '5', + ], + dropdownCange: (String? newValue) { isar.writeTxnSync(() { - settings.timeStart = - timeStartPicker.format(context); + settings.timeRange = int.parse(newValue!); isar.settings.putSync(settings); }); - if (!context.mounted) return; MyApp.updateAppState(context, - newTimeStart: - timeStartPicker.format(context)); + newTimeRange: int.parse(newValue!)); if (settings.notifications) { flutterLocalNotificationsPlugin.cancelAll(); weatherController.notification( weatherController.mainWeather); } - } - }, - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.timer_pause), - text: 'timeEnd'.tr, - info: true, - infoSettings: true, - infoWidget: _TextInfo( - info: settings.timeformat == '12' - ? DateFormat.jm(locale.languageCode).format( - DateFormat.Hm(locale.languageCode) - .parse(weatherController - .timeConvert(timeEnd) - .format(context))) - : DateFormat.Hm(locale.languageCode).format( - DateFormat.Hm(locale.languageCode) - .parse(weatherController - .timeConvert(timeEnd) - .format(context))), + }, ), - onPressed: () async { - final TimeOfDay? timeEndPicker = - await showTimePicker( - context: context, - initialTime: - weatherController.timeConvert(timeEnd), - builder: (context, child) { - final Widget mediaQueryWrapper = MediaQuery( - data: MediaQuery.of(context).copyWith( - alwaysUse24HourFormat: - settings.timeformat == '12' - ? false - : true, - ), - child: child!, - ); - return mediaQueryWrapper; - }, - ); - if (timeEndPicker != null) { - isar.writeTxnSync(() { - settings.timeEnd = - timeEndPicker.format(context); - isar.settings.putSync(settings); - }); - if (!context.mounted) return; - MyApp.updateAppState(context, - newTimeEnd: - timeEndPicker.format(context)); - if (settings.notifications) { - flutterLocalNotificationsPlugin.cancelAll(); - weatherController.notification( - weatherController.mainWeather); + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.timer_start), + text: 'timeStart'.tr, + info: true, + infoSettings: true, + infoWidget: _TextInfo( + info: settings.timeformat == '12' + ? DateFormat.jm(locale.languageCode).format( + DateFormat.Hm(locale.languageCode) + .parse(weatherController + .timeConvert(timeStart) + .format(context))) + : DateFormat.Hm(locale.languageCode).format( + DateFormat.Hm(locale.languageCode) + .parse(weatherController + .timeConvert(timeStart) + .format(context))), + ), + onPressed: () async { + final TimeOfDay? timeStartPicker = + await showTimePicker( + context: context, + initialTime: + weatherController.timeConvert(timeStart), + builder: (context, child) { + final Widget mediaQueryWrapper = MediaQuery( + data: MediaQuery.of(context).copyWith( + alwaysUse24HourFormat: + settings.timeformat == '12' + ? false + : true, + ), + child: child!, + ); + return mediaQueryWrapper; + }, + ); + if (timeStartPicker != null) { + isar.writeTxnSync(() { + settings.timeStart = + timeStartPicker.format(context); + isar.settings.putSync(settings); + }); + if (!context.mounted) return; + MyApp.updateAppState(context, + newTimeStart: + timeStartPicker.format(context)); + if (settings.notifications) { + flutterLocalNotificationsPlugin.cancelAll(); + weatherController.notification( + weatherController.mainWeather); + } } - } - }, - ), - const SizedBox(height: 10), - ], - ), - ); - }, + }, + ), + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.timer_pause), + text: 'timeEnd'.tr, + info: true, + infoSettings: true, + infoWidget: _TextInfo( + info: settings.timeformat == '12' + ? DateFormat.jm(locale.languageCode).format( + DateFormat.Hm(locale.languageCode) + .parse(weatherController + .timeConvert(timeEnd) + .format(context))) + : DateFormat.Hm(locale.languageCode).format( + DateFormat.Hm(locale.languageCode) + .parse(weatherController + .timeConvert(timeEnd) + .format(context))), + ), + onPressed: () async { + final TimeOfDay? timeEndPicker = + await showTimePicker( + context: context, + initialTime: + weatherController.timeConvert(timeEnd), + builder: (context, child) { + final Widget mediaQueryWrapper = MediaQuery( + data: MediaQuery.of(context).copyWith( + alwaysUse24HourFormat: + settings.timeformat == '12' + ? false + : true, + ), + child: child!, + ); + return mediaQueryWrapper; + }, + ); + if (timeEndPicker != null) { + isar.writeTxnSync(() { + settings.timeEnd = + timeEndPicker.format(context); + isar.settings.putSync(settings); + }); + if (!context.mounted) return; + MyApp.updateAppState(context, + newTimeEnd: + timeEndPicker.format(context)); + if (settings.notifications) { + flutterLocalNotificationsPlugin.cancelAll(); + weatherController.notification( + weatherController.mainWeather); + } + } + }, + ), + const SizedBox(height: 10), + ], + ), + ); + }, + ), ); }, ); @@ -431,108 +437,111 @@ class _SettingsPageState extends State { showModalBottomSheet( context: context, builder: (BuildContext context) { - return StatefulBuilder( - builder: (BuildContext context, setState) { - return SingleChildScrollView( - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisSize: MainAxisSize.min, - children: [ - Padding( - padding: const EdgeInsets.symmetric(vertical: 15), - child: Text( - 'data'.tr, - style: context.textTheme.titleLarge?.copyWith( - fontSize: 20, + return Padding( + padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), + child: StatefulBuilder( + builder: (BuildContext context, setState) { + return SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.symmetric(vertical: 15), + child: Text( + 'data'.tr, + style: context.textTheme.titleLarge?.copyWith( + fontSize: 20, + ), ), ), - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.cloud_notif), - text: 'roundDegree'.tr, - switcher: true, - value: settings.roundDegree, - onChange: (value) { - settings.roundDegree = value; - isar.writeTxnSync( - () => isar.settings.putSync(settings), - ); - MyApp.updateAppState( - context, - newRoundDegree: value, - ); - setState(() {}); - }, - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.sun_1), - text: 'degrees'.tr, - dropdown: true, - dropdownName: settings.degrees.tr, - dropdownList: [ - 'celsius'.tr, - 'fahrenheit'.tr - ], - dropdownCange: (String? newValue) async { - isar.writeTxnSync(() { - settings.degrees = newValue == 'celsius'.tr - ? 'celsius' - : 'fahrenheit'; - isar.settings.putSync(settings); - }); - await weatherController.deleteAll(false); - await weatherController.setLocation(); - await weatherController.updateCacheCard(true); - setState(() {}); - }, - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.rulerpen), - text: 'measurements'.tr, - dropdown: true, - dropdownName: settings.measurements.tr, - dropdownList: [ - 'metric'.tr, - 'imperial'.tr - ], - dropdownCange: (String? newValue) async { - isar.writeTxnSync(() { - settings.measurements = - newValue == 'metric'.tr - ? 'metric' - : 'imperial'; - isar.settings.putSync(settings); - }); - await weatherController.deleteAll(false); - await weatherController.setLocation(); - await weatherController.updateCacheCard(true); - setState(() {}); - }, - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.clock), - text: 'timeformat'.tr, - dropdown: true, - dropdownName: settings.timeformat.tr, - dropdownList: ['12'.tr, '24'.tr], - dropdownCange: (String? newValue) { - isar.writeTxnSync(() { - settings.timeformat = - newValue == '12'.tr ? '12' : '24'; - isar.settings.putSync(settings); - }); - setState(() {}); - }, - ), - const SizedBox(height: 10), - ], - ), - ); - }, + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.cloud_notif), + text: 'roundDegree'.tr, + switcher: true, + value: settings.roundDegree, + onChange: (value) { + settings.roundDegree = value; + isar.writeTxnSync( + () => isar.settings.putSync(settings), + ); + MyApp.updateAppState( + context, + newRoundDegree: value, + ); + setState(() {}); + }, + ), + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.sun_1), + text: 'degrees'.tr, + dropdown: true, + dropdownName: settings.degrees.tr, + dropdownList: [ + 'celsius'.tr, + 'fahrenheit'.tr + ], + dropdownCange: (String? newValue) async { + isar.writeTxnSync(() { + settings.degrees = newValue == 'celsius'.tr + ? 'celsius' + : 'fahrenheit'; + isar.settings.putSync(settings); + }); + await weatherController.deleteAll(false); + await weatherController.setLocation(); + await weatherController.updateCacheCard(true); + setState(() {}); + }, + ), + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.rulerpen), + text: 'measurements'.tr, + dropdown: true, + dropdownName: settings.measurements.tr, + dropdownList: [ + 'metric'.tr, + 'imperial'.tr + ], + dropdownCange: (String? newValue) async { + isar.writeTxnSync(() { + settings.measurements = + newValue == 'metric'.tr + ? 'metric' + : 'imperial'; + isar.settings.putSync(settings); + }); + await weatherController.deleteAll(false); + await weatherController.setLocation(); + await weatherController.updateCacheCard(true); + setState(() {}); + }, + ), + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.clock), + text: 'timeformat'.tr, + dropdown: true, + dropdownName: settings.timeformat.tr, + dropdownList: ['12'.tr, '24'.tr], + dropdownCange: (String? newValue) { + isar.writeTxnSync(() { + settings.timeformat = + newValue == '12'.tr ? '12' : '24'; + isar.settings.putSync(settings); + }); + setState(() {}); + }, + ), + const SizedBox(height: 10), + ], + ), + ); + }, + ), ); }, ); @@ -545,198 +554,201 @@ class _SettingsPageState extends State { showModalBottomSheet( context: context, builder: (BuildContext context) { - return StatefulBuilder( - builder: (BuildContext context, setState) { - return SingleChildScrollView( - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisSize: MainAxisSize.min, - children: [ - Padding( - padding: const EdgeInsets.symmetric(vertical: 15), - child: Text( - 'widget'.tr, - style: context.textTheme.titleLarge?.copyWith( - fontSize: 20, + return Padding( + padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), + child: StatefulBuilder( + builder: (BuildContext context, setState) { + return SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.symmetric(vertical: 15), + child: Text( + 'widget'.tr, + style: context.textTheme.titleLarge?.copyWith( + fontSize: 20, + ), ), ), - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.bucket_square), - text: 'widgetBackground'.tr, - info: true, - infoWidget: CircleAvatar( - backgroundColor: context.theme.indicatorColor, - radius: 11, - child: CircleAvatar( - backgroundColor: widgetBackgroundColor.isEmpty - ? context.theme.primaryColor - : HexColor.fromHex(widgetBackgroundColor), - radius: 10, + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.bucket_square), + text: 'widgetBackground'.tr, + info: true, + infoWidget: CircleAvatar( + backgroundColor: context.theme.indicatorColor, + radius: 11, + child: CircleAvatar( + backgroundColor: widgetBackgroundColor.isEmpty + ? context.theme.primaryColor + : HexColor.fromHex(widgetBackgroundColor), + radius: 10, + ), ), - ), - onPressed: () { - colorBackground = null; - showDialog( - context: context, - builder: (context) => Dialog( - child: SingleChildScrollView( - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: - CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.symmetric( - vertical: 15), - child: Text( - 'widgetBackground'.tr, - style: context - .textTheme.titleMedium - ?.copyWith(fontSize: 18), + onPressed: () { + colorBackground = null; + showDialog( + context: context, + builder: (context) => Dialog( + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + vertical: 15), + child: Text( + 'widgetBackground'.tr, + style: context + .textTheme.titleMedium + ?.copyWith(fontSize: 18), + ), ), - ), - Padding( - padding: const EdgeInsets.symmetric( - horizontal: 15), - child: Theme( - data: context.theme.copyWith( - inputDecorationTheme: - InputDecorationTheme( - border: OutlineInputBorder( - borderRadius: - BorderRadius.circular( - 8), + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 15), + child: Theme( + data: context.theme.copyWith( + inputDecorationTheme: + InputDecorationTheme( + border: OutlineInputBorder( + borderRadius: + BorderRadius.circular( + 8), + ), ), ), - ), - child: ColorPicker( - color: widgetBackgroundColor - .isEmpty - ? context.theme.primaryColor - : HexColor.fromHex( - widgetBackgroundColor), - onChanged: (pickedColor) { - colorBackground = - pickedColor.toHex(); - }, - ), - ), - ), - IconButton( - icon: const Icon( - Iconsax.tick_square, - ), - onPressed: () { - if (colorBackground == null) { - return; - } - weatherController - .updateWidgetBackgroundColor( - colorBackground!); - MyApp.updateAppState(context, - newWidgetBackgroundColor: - colorBackground); - Get.back(); - }, - ), - ], - ), - ), - ), - ); - }, - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.text_block), - text: 'widgetText'.tr, - info: true, - infoWidget: CircleAvatar( - backgroundColor: context.theme.indicatorColor, - radius: 11, - child: CircleAvatar( - backgroundColor: widgetTextColor.isEmpty - ? context.theme.primaryColor - : HexColor.fromHex(widgetTextColor), - radius: 10, - ), - ), - onPressed: () { - colorText = null; - showDialog( - context: context, - builder: (context) => Dialog( - child: SingleChildScrollView( - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: - CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.symmetric( - vertical: 15), - child: Text( - 'widgetText'.tr, - style: context - .textTheme.titleMedium - ?.copyWith(fontSize: 18), - ), - ), - Padding( - padding: const EdgeInsets.symmetric( - horizontal: 15), - child: Theme( - data: context.theme.copyWith( - inputDecorationTheme: - InputDecorationTheme( - border: OutlineInputBorder( - borderRadius: - BorderRadius.circular( - 8), - ), + child: ColorPicker( + color: widgetBackgroundColor + .isEmpty + ? context.theme.primaryColor + : HexColor.fromHex( + widgetBackgroundColor), + onChanged: (pickedColor) { + colorBackground = + pickedColor.toHex(); + }, ), ), - child: ColorPicker( - color: widgetTextColor.isEmpty - ? context.theme.primaryColor - : HexColor.fromHex( - widgetTextColor), - onChanged: (pickedColor) { - colorText = - pickedColor.toHex(); - }, + ), + IconButton( + icon: const Icon( + Iconsax.tick_square, ), + onPressed: () { + if (colorBackground == null) { + return; + } + weatherController + .updateWidgetBackgroundColor( + colorBackground!); + MyApp.updateAppState(context, + newWidgetBackgroundColor: + colorBackground); + Get.back(); + }, ), - ), - IconButton( - icon: const Icon( - Iconsax.tick_square, - ), - onPressed: () { - if (colorText == null) return; - weatherController - .updateWidgetTextColor( - colorText!); - MyApp.updateAppState(context, - newWidgetTextColor: - colorText); - Get.back(); - }, - ), - ], + ], + ), ), ), + ); + }, + ), + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.text_block), + text: 'widgetText'.tr, + info: true, + infoWidget: CircleAvatar( + backgroundColor: context.theme.indicatorColor, + radius: 11, + child: CircleAvatar( + backgroundColor: widgetTextColor.isEmpty + ? context.theme.primaryColor + : HexColor.fromHex(widgetTextColor), + radius: 10, ), - ); - }, - ), - const SizedBox(height: 10), - ], - ), - ); - }, + ), + onPressed: () { + colorText = null; + showDialog( + context: context, + builder: (context) => Dialog( + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + vertical: 15), + child: Text( + 'widgetText'.tr, + style: context + .textTheme.titleMedium + ?.copyWith(fontSize: 18), + ), + ), + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 15), + child: Theme( + data: context.theme.copyWith( + inputDecorationTheme: + InputDecorationTheme( + border: OutlineInputBorder( + borderRadius: + BorderRadius.circular( + 8), + ), + ), + ), + child: ColorPicker( + color: widgetTextColor.isEmpty + ? context.theme.primaryColor + : HexColor.fromHex( + widgetTextColor), + onChanged: (pickedColor) { + colorText = + pickedColor.toHex(); + }, + ), + ), + ), + IconButton( + icon: const Icon( + Iconsax.tick_square, + ), + onPressed: () { + if (colorText == null) return; + weatherController + .updateWidgetTextColor( + colorText!); + MyApp.updateAppState(context, + newWidgetTextColor: + colorText); + Get.back(); + }, + ), + ], + ), + ), + ), + ); + }, + ), + const SizedBox(height: 10), + ], + ), + ); + }, + ), ); }, ); @@ -756,50 +768,53 @@ class _SettingsPageState extends State { showModalBottomSheet( context: context, builder: (BuildContext context) { - return StatefulBuilder( - builder: (BuildContext context, setState) { - return ListView( - children: [ - Padding( - padding: const EdgeInsets.symmetric(vertical: 15), - child: Text( - 'language'.tr, - style: context.textTheme.titleLarge?.copyWith( - fontSize: 20, - ), - textAlign: TextAlign.center, - ), - ), - ListView.builder( - shrinkWrap: true, - physics: const BouncingScrollPhysics(), - itemCount: appLanguages.length, - itemBuilder: (context, index) { - return Card( - elevation: 4, - margin: const EdgeInsets.symmetric( - horizontal: 10, vertical: 5), - child: ListTile( - title: Text( - appLanguages[index]['name'], - style: context.textTheme.labelLarge, - textAlign: TextAlign.center, - ), - onTap: () { - MyApp.updateAppState(context, - newLocale: appLanguages[index] - ['locale']); - updateLanguage( - appLanguages[index]['locale']); - }, + return Padding( + padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), + child: StatefulBuilder( + builder: (BuildContext context, setState) { + return ListView( + children: [ + Padding( + padding: const EdgeInsets.symmetric(vertical: 15), + child: Text( + 'language'.tr, + style: context.textTheme.titleLarge?.copyWith( + fontSize: 20, ), - ); - }, - ), - const SizedBox(height: 10), - ], - ); - }, + textAlign: TextAlign.center, + ), + ), + ListView.builder( + shrinkWrap: true, + physics: const BouncingScrollPhysics(), + itemCount: appLanguages.length, + itemBuilder: (context, index) { + return Card( + elevation: 4, + margin: const EdgeInsets.symmetric( + horizontal: 10, vertical: 5), + child: ListTile( + title: Text( + appLanguages[index]['name'], + style: context.textTheme.labelLarge, + textAlign: TextAlign.center, + ), + onTap: () { + MyApp.updateAppState(context, + newLocale: appLanguages[index] + ['locale']); + updateLanguage( + appLanguages[index]['locale']); + }, + ), + ); + }, + ), + const SizedBox(height: 10), + ], + ); + }, + ), ); }, ); @@ -812,41 +827,44 @@ class _SettingsPageState extends State { showModalBottomSheet( context: context, builder: (BuildContext context) { - return StatefulBuilder( - builder: (BuildContext context, setState) { - return SingleChildScrollView( - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisSize: MainAxisSize.min, - children: [ - Padding( - padding: const EdgeInsets.symmetric(vertical: 15), - child: Text( - 'support'.tr, - style: context.textTheme.titleLarge?.copyWith( - fontSize: 20, + return Padding( + padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), + child: StatefulBuilder( + builder: (BuildContext context, setState) { + return SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.symmetric(vertical: 15), + child: Text( + 'support'.tr, + style: context.textTheme.titleLarge?.copyWith( + fontSize: 20, + ), ), ), - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.card), - text: 'DonationAlerts', - onPressed: () => urlLauncher( - 'https://www.donationalerts.com/r/darkmoonight'), - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.wallet), - text: 'ЮMoney', - onPressed: () => urlLauncher( - 'https://yoomoney.ru/to/4100117672775961'), - ), - const SizedBox(height: 10), - ], - ), - ); - }, + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.card), + text: 'DonationAlerts', + onPressed: () => urlLauncher( + 'https://www.donationalerts.com/r/darkmoonight'), + ), + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.wallet), + text: 'ЮMoney', + onPressed: () => urlLauncher( + 'https://yoomoney.ru/to/4100117672775961'), + ), + const SizedBox(height: 10), + ], + ), + ); + }, + ), ); }, ); @@ -859,54 +877,57 @@ class _SettingsPageState extends State { showModalBottomSheet( context: context, builder: (BuildContext context) { - return StatefulBuilder( - builder: (BuildContext context, setState) { - return SingleChildScrollView( - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisSize: MainAxisSize.min, - children: [ - Padding( - padding: const EdgeInsets.symmetric( - horizontal: 20, vertical: 15), - child: Text( - 'groups'.tr, - style: context.textTheme.titleLarge?.copyWith( - fontSize: 20, + return Padding( + padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), + child: StatefulBuilder( + builder: (BuildContext context, setState) { + return SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20, vertical: 15), + child: Text( + 'groups'.tr, + style: context.textTheme.titleLarge?.copyWith( + fontSize: 20, + ), ), ), - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.voice_square), - text: 'Discord', - onPressed: () async { - final Uri url = - Uri.parse('https://discord.gg/JMMa9aHh8f'); - if (!await launchUrl(url, - mode: LaunchMode.externalApplication)) { - throw Exception('Could not launch $url'); - } - }, - ), - SettingCard( - elevation: 4, - icon: const Icon(Iconsax.message_square), - text: 'Telegram', - onPressed: () async { - final Uri url = - Uri.parse('https://t.me/darkmoonightX'); - if (!await launchUrl(url, - mode: LaunchMode.externalApplication)) { - throw Exception('Could not launch $url'); - } - }, - ), - const SizedBox(height: 10), - ], - ), - ); - }, + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.voice_square), + text: 'Discord', + onPressed: () async { + final Uri url = + Uri.parse('https://discord.gg/JMMa9aHh8f'); + if (!await launchUrl(url, + mode: LaunchMode.externalApplication)) { + throw Exception('Could not launch $url'); + } + }, + ), + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.message_square), + text: 'Telegram', + onPressed: () async { + final Uri url = + Uri.parse('https://t.me/darkmoonightX'); + if (!await launchUrl(url, + mode: LaunchMode.externalApplication)) { + throw Exception('Could not launch $url'); + } + }, + ), + const SizedBox(height: 10), + ], + ), + ); + }, + ), ); }, ); diff --git a/lib/main.dart b/lib/main.dart index b8513eb..2f91b26 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -18,6 +18,7 @@ import 'package:rain/app/modules/geolocation.dart'; import 'package:rain/app/modules/home.dart'; import 'package:rain/app/modules/onboarding.dart'; import 'package:rain/theme/theme.dart'; +import 'package:rain/utils/device_info.dart'; import 'package:time_machine/time_machine.dart'; import 'package:timezone/data/latest_all.dart' as tz; import 'package:timezone/timezone.dart' as tz; @@ -92,8 +93,7 @@ void main() async { ? isOnline.value = Future(() => false) : isOnline.value = InternetConnection().hasInternetAccess; }); - SystemChrome.setSystemUIOverlayStyle( - const SystemUiOverlayStyle(systemNavigationBarColor: Colors.black)); + DeviceFeature().init(); if (Platform.isAndroid) { Workmanager().initialize(callbackDispatcher, isInDebugMode: kDebugMode); await setOptimalDisplayMode(); @@ -284,34 +284,42 @@ class _MyAppState extends State { @override Widget build(BuildContext context) { + final edgeToEdgeAvailable = DeviceFeature().isEdgeToEdgeAvailable(); + SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); + return GestureDetector( onTap: () => FocusManager.instance.primaryFocus?.unfocus(), child: DynamicColorBuilder( builder: (lightColorScheme, darkColorScheme) { - final lightMaterialTheme = - lightTheme(lightColorScheme?.surface, lightColorScheme); - final darkMaterialTheme = - darkTheme(darkColorScheme?.surface, darkColorScheme); - final darkMaterialThemeOled = darkTheme(oledColor, darkColorScheme); + final lightMaterialTheme = lightTheme( + lightColorScheme?.surface, lightColorScheme, edgeToEdgeAvailable); + final darkMaterialTheme = darkTheme( + darkColorScheme?.surface, darkColorScheme, edgeToEdgeAvailable); + final darkMaterialThemeOled = + darkTheme(oledColor, darkColorScheme, edgeToEdgeAvailable); return GetMaterialApp( themeMode: themeController.theme, theme: materialColor ? lightColorScheme != null ? lightMaterialTheme - : lightTheme(lightColor, colorSchemeLight) - : lightTheme(lightColor, colorSchemeLight), + : lightTheme( + lightColor, colorSchemeLight, edgeToEdgeAvailable) + : lightTheme(lightColor, colorSchemeLight, edgeToEdgeAvailable), darkTheme: amoledTheme ? materialColor ? darkColorScheme != null ? darkMaterialThemeOled - : darkTheme(oledColor, colorSchemeDark) - : darkTheme(oledColor, colorSchemeDark) + : darkTheme( + oledColor, colorSchemeDark, edgeToEdgeAvailable) + : darkTheme(oledColor, colorSchemeDark, edgeToEdgeAvailable) : materialColor ? darkColorScheme != null ? darkMaterialTheme - : darkTheme(darkColor, colorSchemeDark) - : darkTheme(darkColor, colorSchemeDark), + : darkTheme( + darkColor, colorSchemeDark, edgeToEdgeAvailable) + : darkTheme( + darkColor, colorSchemeDark, edgeToEdgeAvailable), localizationsDelegates: const [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, diff --git a/lib/theme/theme.dart b/lib/theme/theme.dart index f1a476d..c7af436 100644 --- a/lib/theme/theme.dart +++ b/lib/theme/theme.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:dynamic_color/dynamic_color.dart'; @@ -18,7 +19,8 @@ ColorScheme colorSchemeDark = ColorScheme.fromSeed( brightness: Brightness.dark, ); -ThemeData lightTheme(Color? color, ColorScheme? colorScheme) { +ThemeData lightTheme( + Color? color, ColorScheme? colorScheme, bool edgeToEdgeAvailable) { return baseLigth.copyWith( brightness: Brightness.light, colorScheme: colorScheme @@ -34,6 +36,16 @@ ThemeData lightTheme(Color? color, ColorScheme? colorScheme) { shadowColor: Colors.transparent, surfaceTintColor: Colors.transparent, elevation: 0, + systemOverlayStyle: SystemUiOverlayStyle( + statusBarIconBrightness: Brightness.dark, + statusBarColor: Colors.transparent, + systemStatusBarContrastEnforced: false, + systemNavigationBarContrastEnforced: false, + systemNavigationBarDividerColor: Colors.transparent, + systemNavigationBarIconBrightness: Brightness.dark, + systemNavigationBarColor: + edgeToEdgeAvailable ? Colors.transparent : colorScheme?.surface, + ), ), primaryColor: color, canvasColor: color, @@ -74,7 +86,8 @@ ThemeData lightTheme(Color? color, ColorScheme? colorScheme) { ); } -ThemeData darkTheme(Color? color, ColorScheme? colorScheme) { +ThemeData darkTheme( + Color? color, ColorScheme? colorScheme, bool edgeToEdgeAvailable) { return baseDark.copyWith( brightness: Brightness.dark, colorScheme: colorScheme @@ -90,6 +103,16 @@ ThemeData darkTheme(Color? color, ColorScheme? colorScheme) { shadowColor: Colors.transparent, surfaceTintColor: Colors.transparent, elevation: 0, + systemOverlayStyle: SystemUiOverlayStyle( + statusBarIconBrightness: Brightness.light, + statusBarColor: Colors.transparent, + systemStatusBarContrastEnforced: false, + systemNavigationBarContrastEnforced: false, + systemNavigationBarDividerColor: Colors.transparent, + systemNavigationBarIconBrightness: Brightness.light, + systemNavigationBarColor: + edgeToEdgeAvailable ? Colors.transparent : colorScheme?.surface, + ), ), primaryColor: color, canvasColor: color, diff --git a/lib/utils/device_info.dart b/lib/utils/device_info.dart new file mode 100644 index 0000000..61d8a93 --- /dev/null +++ b/lib/utils/device_info.dart @@ -0,0 +1,31 @@ +import 'package:device_info_plus/device_info_plus.dart'; +import 'package:flutter/foundation.dart'; + +class DeviceFeature { + DeviceFeature._internal(); + + static final DeviceFeature _singleton = DeviceFeature._internal(); + + factory DeviceFeature() { + return _singleton; + } + + final _deviceInfoPlugin = DeviceInfoPlugin(); + + AndroidDeviceInfo? _androidDeviceInfo; + + Future init() async { + try { + _androidDeviceInfo = await _deviceInfoPlugin.androidInfo; + } catch (e) { + if (kDebugMode) { + print('Error initializing device info: $e'); + } + } + } + + bool isEdgeToEdgeAvailable() { + return _androidDeviceInfo != null && + _androidDeviceInfo!.version.sdkInt > 28; + } +} diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index ee92ad9..7c9d1ec 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -6,6 +6,7 @@ import FlutterMacOS import Foundation import connectivity_plus +import device_info_plus import dynamic_color import flutter_local_notifications import flutter_timezone @@ -17,6 +18,7 @@ import url_launcher_macos func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { ConnectivityPlusPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlusPlugin")) + DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) DynamicColorPlugin.register(with: registry.registrar(forPlugin: "DynamicColorPlugin")) FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin")) FlutterTimezonePlugin.register(with: registry.registrar(forPlugin: "FlutterTimezonePlugin")) diff --git a/pubspec.lock b/pubspec.lock index db903bc..2c145dd 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -233,6 +233,22 @@ packages: url: "https://pub.dev" source: hosted version: "0.7.10" + device_info_plus: + dependency: "direct main" + description: + name: device_info_plus + sha256: eead12d1a1ed83d8283ab4c2f3fca23ac4082f29f25f29dff0f758f57d06ec91 + url: "https://pub.dev" + source: hosted + version: "10.1.0" + device_info_plus_platform_interface: + dependency: transitive + description: + name: device_info_plus_platform_interface + sha256: d3b01d5868b50ae571cd1dc6e502fc94d956b665756180f7b16ead09e836fd64 + url: "https://pub.dev" + source: hosted + version: "7.0.0" dio: dependency: "direct main" description: @@ -302,6 +318,15 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.0" + flutter_glow: + dependency: "direct main" + description: + path: "." + ref: HEAD + resolved-ref: "7c5e1fd34583db4b40073add9ca329b03bf52a51" + url: "https://github.com/payam-zahedi/flutter-glow.git" + source: git + version: "0.3.1" flutter_hsvcolor_picker: dependency: "direct main" description: @@ -372,10 +397,10 @@ packages: dependency: "direct main" description: name: flutter_timezone - sha256: b7448ff8a9e1350606727e40b3f314aa798a6a1cc07127eba58f09b98a66f03f + sha256: f9c328f66d58cd2af8a0cbd2f84d0c211fda8b7332b5e458d9848bd9ec936120 url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.1" flutter_web_plugins: dependency: transitive description: flutter @@ -393,10 +418,10 @@ packages: dependency: "direct main" description: name: freezed_annotation - sha256: f54946fdb1fa7b01f780841937b1a80783a20b393485f3f6cdf336fd6f4705f2 + sha256: f9f6597ac43cc262fa7d7f2e65259a6060c23a560525d1f2631be374540f2a9b url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.3" frontend_server_client: dependency: transitive description: @@ -625,18 +650,10 @@ packages: dependency: transitive description: name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf url: "https://pub.dev" source: hosted - version: "0.6.7" - js_interop: - dependency: transitive - description: - name: js_interop - sha256: "7ec859c296958ccea34dc770504bd3ff4ae52fdd9e7eeb2bacc7081ad476a1f5" - url: "https://pub.dev" - source: hosted - version: "0.0.1" + version: "0.7.1" json_annotation: dependency: "direct main" description: @@ -785,10 +802,10 @@ packages: dependency: transitive description: name: path_provider_android - sha256: bca87b0165ffd7cdb9cad8edd22d18d2201e886d9a9f19b4fb3452ea7df3a72a + sha256: "30c5aa827a6ae95ce2853cdc5fe3971daaac00f6f081c419c013f7f57bff2f5e" url: "https://pub.dev" source: hosted - version: "2.2.6" + version: "2.2.7" path_provider_foundation: dependency: transitive description: @@ -817,10 +834,10 @@ packages: dependency: transitive description: name: path_provider_windows - sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.3.0" petitparser: dependency: transitive description: @@ -1162,6 +1179,14 @@ packages: url: "https://pub.dev" source: hosted version: "5.5.1" + win32_registry: + dependency: transitive + description: + name: win32_registry + sha256: "10589e0d7f4e053f2c61023a31c9ce01146656a70b7b7f0828c0b46d7da2a9bb" + url: "https://pub.dev" + source: hosted + version: "1.1.3" workmanager: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index d18bce6..7e6b1ba 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -29,14 +29,18 @@ dependencies: google_fonts: ^6.2.1 url_launcher: ^6.3.0 time_machine: ^0.9.17 + flutter_glow: + git: + url: https://github.com/payam-zahedi/flutter-glow.git dynamic_color: ^1.7.0 path_provider: ^2.1.3 # quick_settings: ^1.0.1 json_annotation: ^4.9.0 - flutter_timezone: ^2.0.0 + flutter_timezone: ^2.0.1 + device_info_plus: ^10.1.0 package_info_plus: ^8.0.0 connectivity_plus: ^6.0.3 - freezed_annotation: ^2.4.2 + freezed_annotation: ^2.4.3 isar_flutter_libs: version: ^3.1.7 hosted: https://pub.isar-community.dev/ From 46e1546e5bdfb19b43e2bd47514bbdc0242b5c0b Mon Sep 17 00:00:00 2001 From: Yoshi Date: Wed, 10 Jul 2024 21:59:36 +0300 Subject: [PATCH 02/41] Two weather display options --- lib/app/data/weather.dart | 1 + lib/app/data/weather.g.dart | 147 +++++++++++------ lib/app/modules/settings/view/settings.dart | 164 ++++++++++++------- lib/app/widgets/now/weather_now.dart | 143 ++++++++++------ lib/app/widgets/sun_moon/sunset_sunrise.dart | 11 +- lib/main.dart | 12 ++ lib/translation/bn_in.dart | 1 + lib/translation/cs_cz.dart | 1 + lib/translation/da_dk.dart | 1 + lib/translation/de_de.dart | 1 + lib/translation/en_us.dart | 1 + lib/translation/es_es.dart | 1 + lib/translation/fa_ir.dart | 1 + lib/translation/fr_fr.dart | 1 + lib/translation/ga_ie.dart | 1 + lib/translation/hi_in.dart | 1 + lib/translation/hu_hu.dart | 1 + lib/translation/it_it.dart | 1 + lib/translation/ka_ge.dart | 1 + lib/translation/ko_kr.dart | 1 + lib/translation/nl_nl.dart | 1 + lib/translation/pl_pl.dart | 1 + lib/translation/pt_br.dart | 1 + lib/translation/ro_ro.dart | 1 + lib/translation/ru_ru.dart | 1 + lib/translation/sk_sk.dart | 1 + lib/translation/tr_tr.dart | 1 + lib/translation/ur_pk.dart | 1 + lib/translation/zh_ch.dart | 1 + lib/translation/zh_tw.dart | 1 + 30 files changed, 339 insertions(+), 163 deletions(-) diff --git a/lib/app/data/weather.dart b/lib/app/data/weather.dart index bca9f94..e05e473 100644 --- a/lib/app/data/weather.dart +++ b/lib/app/data/weather.dart @@ -12,6 +12,7 @@ class Settings { bool materialColor = false; bool amoledTheme = false; bool roundDegree = false; + bool largeElement = false; String? widgetBackgroundColor; String? widgetTextColor; String measurements = 'metric'; diff --git a/lib/app/data/weather.g.dart b/lib/app/data/weather.g.dart index 1103612..7d7102e 100644 --- a/lib/app/data/weather.g.dart +++ b/lib/app/data/weather.g.dart @@ -32,68 +32,73 @@ const SettingsSchema = CollectionSchema( name: r'language', type: IsarType.string, ), - r'location': PropertySchema( + r'largeElement': PropertySchema( id: 3, + name: r'largeElement', + type: IsarType.bool, + ), + r'location': PropertySchema( + id: 4, name: r'location', type: IsarType.bool, ), r'materialColor': PropertySchema( - id: 4, + id: 5, name: r'materialColor', type: IsarType.bool, ), r'measurements': PropertySchema( - id: 5, + id: 6, name: r'measurements', type: IsarType.string, ), r'notifications': PropertySchema( - id: 6, + id: 7, name: r'notifications', type: IsarType.bool, ), r'onboard': PropertySchema( - id: 7, + id: 8, name: r'onboard', type: IsarType.bool, ), r'roundDegree': PropertySchema( - id: 8, + id: 9, name: r'roundDegree', type: IsarType.bool, ), r'theme': PropertySchema( - id: 9, + id: 10, name: r'theme', type: IsarType.string, ), r'timeEnd': PropertySchema( - id: 10, + id: 11, name: r'timeEnd', type: IsarType.string, ), r'timeRange': PropertySchema( - id: 11, + id: 12, name: r'timeRange', type: IsarType.long, ), r'timeStart': PropertySchema( - id: 12, + id: 13, name: r'timeStart', type: IsarType.string, ), r'timeformat': PropertySchema( - id: 13, + id: 14, name: r'timeformat', type: IsarType.string, ), r'widgetBackgroundColor': PropertySchema( - id: 14, + id: 15, name: r'widgetBackgroundColor', type: IsarType.string, ), r'widgetTextColor': PropertySchema( - id: 15, + id: 16, name: r'widgetTextColor', type: IsarType.string, ) @@ -169,19 +174,20 @@ void _settingsSerialize( writer.writeBool(offsets[0], object.amoledTheme); writer.writeString(offsets[1], object.degrees); writer.writeString(offsets[2], object.language); - writer.writeBool(offsets[3], object.location); - writer.writeBool(offsets[4], object.materialColor); - writer.writeString(offsets[5], object.measurements); - writer.writeBool(offsets[6], object.notifications); - writer.writeBool(offsets[7], object.onboard); - writer.writeBool(offsets[8], object.roundDegree); - writer.writeString(offsets[9], object.theme); - writer.writeString(offsets[10], object.timeEnd); - writer.writeLong(offsets[11], object.timeRange); - writer.writeString(offsets[12], object.timeStart); - writer.writeString(offsets[13], object.timeformat); - writer.writeString(offsets[14], object.widgetBackgroundColor); - writer.writeString(offsets[15], object.widgetTextColor); + writer.writeBool(offsets[3], object.largeElement); + writer.writeBool(offsets[4], object.location); + writer.writeBool(offsets[5], object.materialColor); + 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); } Settings _settingsDeserialize( @@ -195,19 +201,20 @@ Settings _settingsDeserialize( object.degrees = reader.readString(offsets[1]); object.id = id; object.language = reader.readStringOrNull(offsets[2]); - object.location = reader.readBool(offsets[3]); - object.materialColor = reader.readBool(offsets[4]); - object.measurements = reader.readString(offsets[5]); - object.notifications = reader.readBool(offsets[6]); - object.onboard = reader.readBool(offsets[7]); - object.roundDegree = reader.readBool(offsets[8]); - object.theme = reader.readStringOrNull(offsets[9]); - object.timeEnd = reader.readStringOrNull(offsets[10]); - object.timeRange = reader.readLongOrNull(offsets[11]); - object.timeStart = reader.readStringOrNull(offsets[12]); - object.timeformat = reader.readString(offsets[13]); - object.widgetBackgroundColor = reader.readStringOrNull(offsets[14]); - object.widgetTextColor = reader.readStringOrNull(offsets[15]); + object.largeElement = reader.readBool(offsets[3]); + object.location = reader.readBool(offsets[4]); + object.materialColor = reader.readBool(offsets[5]); + 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]); return object; } @@ -229,27 +236,29 @@ P _settingsDeserializeProp

( case 4: return (reader.readBool(offset)) as P; case 5: - return (reader.readString(offset)) as P; - case 6: return (reader.readBool(offset)) as P; + case 6: + return (reader.readString(offset)) as P; case 7: return (reader.readBool(offset)) as P; case 8: return (reader.readBool(offset)) as P; case 9: - return (reader.readStringOrNull(offset)) as P; + return (reader.readBool(offset)) as P; case 10: return (reader.readStringOrNull(offset)) as P; case 11: - return (reader.readLongOrNull(offset)) as P; + return (reader.readStringOrNull(offset)) as P; case 12: - return (reader.readStringOrNull(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 13: - return (reader.readString(offset)) as P; - case 14: return (reader.readStringOrNull(offset)) as P; + case 14: + return (reader.readString(offset)) as P; case 15: return (reader.readStringOrNull(offset)) as P; + case 16: + return (reader.readStringOrNull(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); } @@ -682,6 +691,16 @@ extension SettingsQueryFilter }); } + QueryBuilder largeElementEqualTo( + bool value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'largeElement', + value: value, + )); + }); + } + QueryBuilder locationEqualTo( bool value) { return QueryBuilder.apply(this, (query) { @@ -1858,6 +1877,18 @@ extension SettingsQuerySortBy on QueryBuilder { }); } + QueryBuilder sortByLargeElement() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'largeElement', Sort.asc); + }); + } + + QueryBuilder sortByLargeElementDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'largeElement', Sort.desc); + }); + } + QueryBuilder sortByLocation() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'location', Sort.asc); @@ -2066,6 +2097,18 @@ extension SettingsQuerySortThenBy }); } + QueryBuilder thenByLargeElement() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'largeElement', Sort.asc); + }); + } + + QueryBuilder thenByLargeElementDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'largeElement', Sort.desc); + }); + } + QueryBuilder thenByLocation() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'location', Sort.asc); @@ -2246,6 +2289,12 @@ extension SettingsQueryWhereDistinct }); } + QueryBuilder distinctByLargeElement() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'largeElement'); + }); + } + QueryBuilder distinctByLocation() { return QueryBuilder.apply(this, (query) { return query.addDistinctBy(r'location'); @@ -2360,6 +2409,12 @@ extension SettingsQueryProperty }); } + QueryBuilder largeElementProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'largeElement'); + }); + } + QueryBuilder locationProperty() { return QueryBuilder.apply(this, (query) { return query.addPropertyName(r'location'); diff --git a/lib/app/modules/settings/view/settings.dart b/lib/app/modules/settings/view/settings.dart index d97259c..b017543 100644 --- a/lib/app/modules/settings/view/settings.dart +++ b/lib/app/modules/settings/view/settings.dart @@ -70,7 +70,8 @@ class _SettingsPageState extends State { context: context, builder: (BuildContext context) { return Padding( - padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).padding.bottom), child: StatefulBuilder( builder: (BuildContext context, setState) { return SingleChildScrollView( @@ -79,7 +80,8 @@ class _SettingsPageState extends State { mainAxisSize: MainAxisSize.min, children: [ Padding( - padding: const EdgeInsets.symmetric(vertical: 15), + padding: + const EdgeInsets.symmetric(vertical: 15), child: Text( 'appearance'.tr, style: context.textTheme.titleLarge?.copyWith( @@ -142,6 +144,24 @@ class _SettingsPageState extends State { newMaterialColor: value); }, ), + SettingCard( + elevation: 4, + icon: const Icon(Iconsax.additem), + text: 'largeElement'.tr, + switcher: true, + value: settings.largeElement, + onChange: (value) { + settings.largeElement = value; + isar.writeTxnSync( + () => isar.settings.putSync(settings), + ); + MyApp.updateAppState( + context, + newLargeElement: value, + ); + setState(() {}); + }, + ), const SizedBox(height: 10), ], ), @@ -161,7 +181,8 @@ class _SettingsPageState extends State { context: context, builder: (BuildContext context) { return Padding( - padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).padding.bottom), child: StatefulBuilder( builder: (BuildContext context, setState) { return SingleChildScrollView( @@ -170,7 +191,8 @@ class _SettingsPageState extends State { mainAxisSize: MainAxisSize.min, children: [ Padding( - padding: const EdgeInsets.symmetric(vertical: 15), + padding: + const EdgeInsets.symmetric(vertical: 15), child: Text( 'functions'.tr, style: context.textTheme.titleLarge?.copyWith( @@ -196,7 +218,8 @@ class _SettingsPageState extends State { return AlertDialog.adaptive( title: Text( 'location'.tr, - style: context.textTheme.titleLarge, + style: + context.textTheme.titleLarge, ), content: Text('no_location'.tr, style: context @@ -210,8 +233,8 @@ class _SettingsPageState extends State { style: context .textTheme.titleMedium ?.copyWith( - color: - Colors.blueAccent), + color: Colors + .blueAccent), ), ), TextButton( @@ -232,7 +255,7 @@ class _SettingsPageState extends State { ); }, ); - + return; } weatherController.getCurrentLocation(); @@ -274,7 +297,8 @@ class _SettingsPageState extends State { weatherController.notification( weatherController.mainWeather); } else { - flutterLocalNotificationsPlugin.cancelAll(); + flutterLocalNotificationsPlugin + .cancelAll(); } setState(() {}); } @@ -315,25 +339,28 @@ class _SettingsPageState extends State { infoSettings: true, infoWidget: _TextInfo( info: settings.timeformat == '12' - ? DateFormat.jm(locale.languageCode).format( - DateFormat.Hm(locale.languageCode) - .parse(weatherController - .timeConvert(timeStart) - .format(context))) - : DateFormat.Hm(locale.languageCode).format( - DateFormat.Hm(locale.languageCode) - .parse(weatherController - .timeConvert(timeStart) - .format(context))), + ? DateFormat.jm(locale.languageCode) + .format( + DateFormat.Hm(locale.languageCode) + .parse(weatherController + .timeConvert(timeStart) + .format(context))) + : DateFormat.Hm(locale.languageCode) + .format( + DateFormat.Hm(locale.languageCode) + .parse(weatherController + .timeConvert(timeStart) + .format(context))), ), onPressed: () async { final TimeOfDay? timeStartPicker = await showTimePicker( context: context, - initialTime: - weatherController.timeConvert(timeStart), + initialTime: weatherController + .timeConvert(timeStart), builder: (context, child) { - final Widget mediaQueryWrapper = MediaQuery( + final Widget mediaQueryWrapper = + MediaQuery( data: MediaQuery.of(context).copyWith( alwaysUse24HourFormat: settings.timeformat == '12' @@ -356,7 +383,8 @@ class _SettingsPageState extends State { newTimeStart: timeStartPicker.format(context)); if (settings.notifications) { - flutterLocalNotificationsPlugin.cancelAll(); + flutterLocalNotificationsPlugin + .cancelAll(); weatherController.notification( weatherController.mainWeather); } @@ -371,16 +399,18 @@ class _SettingsPageState extends State { infoSettings: true, infoWidget: _TextInfo( info: settings.timeformat == '12' - ? DateFormat.jm(locale.languageCode).format( - DateFormat.Hm(locale.languageCode) - .parse(weatherController - .timeConvert(timeEnd) - .format(context))) - : DateFormat.Hm(locale.languageCode).format( - DateFormat.Hm(locale.languageCode) - .parse(weatherController - .timeConvert(timeEnd) - .format(context))), + ? DateFormat.jm(locale.languageCode) + .format( + DateFormat.Hm(locale.languageCode) + .parse(weatherController + .timeConvert(timeEnd) + .format(context))) + : DateFormat.Hm(locale.languageCode) + .format( + DateFormat.Hm(locale.languageCode) + .parse(weatherController + .timeConvert(timeEnd) + .format(context))), ), onPressed: () async { final TimeOfDay? timeEndPicker = @@ -389,7 +419,8 @@ class _SettingsPageState extends State { initialTime: weatherController.timeConvert(timeEnd), builder: (context, child) { - final Widget mediaQueryWrapper = MediaQuery( + final Widget mediaQueryWrapper = + MediaQuery( data: MediaQuery.of(context).copyWith( alwaysUse24HourFormat: settings.timeformat == '12' @@ -412,7 +443,8 @@ class _SettingsPageState extends State { newTimeEnd: timeEndPicker.format(context)); if (settings.notifications) { - flutterLocalNotificationsPlugin.cancelAll(); + flutterLocalNotificationsPlugin + .cancelAll(); weatherController.notification( weatherController.mainWeather); } @@ -438,7 +470,8 @@ class _SettingsPageState extends State { context: context, builder: (BuildContext context) { return Padding( - padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).padding.bottom), child: StatefulBuilder( builder: (BuildContext context, setState) { return SingleChildScrollView( @@ -447,7 +480,8 @@ class _SettingsPageState extends State { mainAxisSize: MainAxisSize.min, children: [ Padding( - padding: const EdgeInsets.symmetric(vertical: 15), + padding: + const EdgeInsets.symmetric(vertical: 15), child: Text( 'data'.tr, style: context.textTheme.titleLarge?.copyWith( @@ -555,7 +589,8 @@ class _SettingsPageState extends State { context: context, builder: (BuildContext context) { return Padding( - padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).padding.bottom), child: StatefulBuilder( builder: (BuildContext context, setState) { return SingleChildScrollView( @@ -564,7 +599,8 @@ class _SettingsPageState extends State { mainAxisSize: MainAxisSize.min, children: [ Padding( - padding: const EdgeInsets.symmetric(vertical: 15), + padding: + const EdgeInsets.symmetric(vertical: 15), child: Text( 'widget'.tr, style: context.textTheme.titleLarge?.copyWith( @@ -581,9 +617,11 @@ class _SettingsPageState extends State { backgroundColor: context.theme.indicatorColor, radius: 11, child: CircleAvatar( - backgroundColor: widgetBackgroundColor.isEmpty - ? context.theme.primaryColor - : HexColor.fromHex(widgetBackgroundColor), + backgroundColor: + widgetBackgroundColor.isEmpty + ? context.theme.primaryColor + : HexColor.fromHex( + widgetBackgroundColor), radius: 10, ), ), @@ -599,8 +637,9 @@ class _SettingsPageState extends State { CrossAxisAlignment.center, children: [ Padding( - padding: const EdgeInsets.symmetric( - vertical: 15), + padding: + const EdgeInsets.symmetric( + vertical: 15), child: Text( 'widgetBackground'.tr, style: context @@ -609,8 +648,9 @@ class _SettingsPageState extends State { ), ), Padding( - padding: const EdgeInsets.symmetric( - horizontal: 15), + padding: + const EdgeInsets.symmetric( + horizontal: 15), child: Theme( data: context.theme.copyWith( inputDecorationTheme: @@ -625,7 +665,8 @@ class _SettingsPageState extends State { child: ColorPicker( color: widgetBackgroundColor .isEmpty - ? context.theme.primaryColor + ? context + .theme.primaryColor : HexColor.fromHex( widgetBackgroundColor), onChanged: (pickedColor) { @@ -686,8 +727,9 @@ class _SettingsPageState extends State { CrossAxisAlignment.center, children: [ Padding( - padding: const EdgeInsets.symmetric( - vertical: 15), + padding: + const EdgeInsets.symmetric( + vertical: 15), child: Text( 'widgetText'.tr, style: context @@ -696,8 +738,9 @@ class _SettingsPageState extends State { ), ), Padding( - padding: const EdgeInsets.symmetric( - horizontal: 15), + padding: + const EdgeInsets.symmetric( + horizontal: 15), child: Theme( data: context.theme.copyWith( inputDecorationTheme: @@ -711,7 +754,8 @@ class _SettingsPageState extends State { ), child: ColorPicker( color: widgetTextColor.isEmpty - ? context.theme.primaryColor + ? context + .theme.primaryColor : HexColor.fromHex( widgetTextColor), onChanged: (pickedColor) { @@ -769,7 +813,8 @@ class _SettingsPageState extends State { context: context, builder: (BuildContext context) { return Padding( - padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).padding.bottom), child: StatefulBuilder( builder: (BuildContext context, setState) { return ListView( @@ -828,7 +873,8 @@ class _SettingsPageState extends State { context: context, builder: (BuildContext context) { return Padding( - padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).padding.bottom), child: StatefulBuilder( builder: (BuildContext context, setState) { return SingleChildScrollView( @@ -837,7 +883,8 @@ class _SettingsPageState extends State { mainAxisSize: MainAxisSize.min, children: [ Padding( - padding: const EdgeInsets.symmetric(vertical: 15), + padding: + const EdgeInsets.symmetric(vertical: 15), child: Text( 'support'.tr, style: context.textTheme.titleLarge?.copyWith( @@ -878,7 +925,8 @@ class _SettingsPageState extends State { context: context, builder: (BuildContext context) { return Padding( - padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).padding.bottom), child: StatefulBuilder( builder: (BuildContext context, setState) { return SingleChildScrollView( @@ -901,8 +949,8 @@ class _SettingsPageState extends State { icon: const Icon(Iconsax.voice_square), text: 'Discord', onPressed: () async { - final Uri url = - Uri.parse('https://discord.gg/JMMa9aHh8f'); + final Uri url = Uri.parse( + 'https://discord.gg/JMMa9aHh8f'); if (!await launchUrl(url, mode: LaunchMode.externalApplication)) { throw Exception('Could not launch $url'); diff --git a/lib/app/widgets/now/weather_now.dart b/lib/app/widgets/now/weather_now.dart index ed38289..8d97f11 100644 --- a/lib/app/widgets/now/weather_now.dart +++ b/lib/app/widgets/now/weather_now.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/status/status_data.dart'; @@ -34,64 +35,102 @@ class _WeatherNowState extends State { @override Widget build(BuildContext context) { - return Card( - margin: const EdgeInsets.only(bottom: 15), - child: Padding( - padding: - const EdgeInsets.only(top: 18, bottom: 18, left: 25, right: 15), - child: Row( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, + return largeElement + ? Padding( + padding: const EdgeInsets.only(bottom: 15), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const SizedBox(height: 15), + Image( + image: AssetImage(statusWeather.getImageNow(widget.weather, + widget.time, widget.timeDay, widget.timeNight)), + fit: BoxFit.fill, + height: 200, + ), + GlowText( + '${roundDegree ? widget.degree.round() : widget.degree}', + style: context.textTheme.displayLarge?.copyWith( + fontSize: 90, + fontWeight: FontWeight.w800, + ), + ), + Text( + statusWeather.getText(widget.weather), + style: context.textTheme.titleLarge, + ), + const SizedBox(height: 5), + Text( + DateFormat.MMMMEEEEd(locale.languageCode).format( + DateTime.parse(widget.time), + ), + style: context.textTheme.labelLarge?.copyWith( + color: Colors.grey, + ), + ), + ], + ), + ) + : Card( + margin: const EdgeInsets.only(bottom: 15), + child: Padding( + padding: const EdgeInsets.only( + top: 18, bottom: 18, left: 25, right: 15), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text( - DateFormat.MMMMEEEEd(locale.languageCode).format( - DateTime.parse(widget.time), - ), - style: context.textTheme.labelLarge?.copyWith( - color: Colors.grey, + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + DateFormat.MMMMEEEEd(locale.languageCode).format( + DateTime.parse(widget.time), + ), + style: context.textTheme.labelLarge?.copyWith( + color: Colors.grey, + ), + ), + const SizedBox(height: 5), + Text( + statusWeather.getText(widget.weather), + style: context.textTheme.titleLarge + ?.copyWith(fontSize: 20), + ), + const SizedBox(height: 30), + Text( + statusData.getDegree(roundDegree + ? widget.degree.round() + : widget.degree), + style: context.textTheme.displayMedium?.copyWith( + fontWeight: FontWeight.w800, + ), + ), + const SizedBox(height: 5), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(statusData.getDegree((widget.tempMin.round())), + style: context.textTheme.labelLarge), + Text(' / ', + style: context.textTheme.labelLarge + ?.copyWith(color: Colors.grey)), + Text(statusData.getDegree((widget.tempMax.round())), + style: context.textTheme.labelLarge), + ], + ), + ], ), ), - const SizedBox(height: 5), - Text( - statusWeather.getText(widget.weather), - style: context.textTheme.titleLarge?.copyWith(fontSize: 20), - ), - const SizedBox(height: 30), - Text( - statusData.getDegree( - roundDegree ? widget.degree.round() : widget.degree), - style: context.textTheme.displayMedium?.copyWith( - fontWeight: FontWeight.w800, - ), - ), - const SizedBox(height: 5), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text(statusData.getDegree((widget.tempMin.round())), - style: context.textTheme.labelLarge), - Text(' / ', - style: context.textTheme.labelLarge - ?.copyWith(color: Colors.grey)), - Text(statusData.getDegree((widget.tempMax.round())), - style: context.textTheme.labelLarge), - ], + Image( + image: AssetImage(statusWeather.getImageNow(widget.weather, + widget.time, widget.timeDay, widget.timeNight)), + fit: BoxFit.fill, + height: 140, ), ], ), ), - Image( - image: AssetImage(statusWeather.getImageNow(widget.weather, - widget.time, widget.timeDay, widget.timeNight)), - fit: BoxFit.fill, - height: 140, - ), - ], - ), - ), - ); + ); } } diff --git a/lib/app/widgets/sun_moon/sunset_sunrise.dart b/lib/app/widgets/sun_moon/sunset_sunrise.dart index e6f1909..f5a2112 100644 --- a/lib/app/widgets/sun_moon/sunset_sunrise.dart +++ b/lib/app/widgets/sun_moon/sunset_sunrise.dart @@ -21,7 +21,6 @@ class _SunsetSunriseState extends State { @override Widget build(BuildContext context) { - const crossAxisCenterAlignment = CrossAxisAlignment.center; final textTheme = context.textTheme; final titleSmall = textTheme.titleSmall; final titleLarge = textTheme.titleLarge; @@ -34,17 +33,16 @@ class _SunsetSunriseState extends State { children: [ Expanded( child: Row( - crossAxisAlignment: crossAxisCenterAlignment, + mainAxisAlignment: MainAxisAlignment.center, children: [ Expanded( child: Column( - crossAxisAlignment: crossAxisCenterAlignment, + crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( 'sunrise'.tr, style: titleSmall, overflow: TextOverflow.ellipsis, - textAlign: TextAlign.center, ), const SizedBox(height: 2), Text( @@ -66,17 +64,16 @@ class _SunsetSunriseState extends State { ), Expanded( child: Row( - crossAxisAlignment: crossAxisCenterAlignment, + mainAxisAlignment: MainAxisAlignment.center, children: [ Expanded( child: Column( - crossAxisAlignment: crossAxisCenterAlignment, + crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( 'sunset'.tr, style: titleSmall, overflow: TextOverflow.ellipsis, - textAlign: TextAlign.center, ), const SizedBox(height: 2), Text( diff --git a/lib/main.dart b/lib/main.dart index 2f91b26..ea9a567 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -39,6 +39,7 @@ FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = bool amoledTheme = false; bool materialColor = false; bool roundDegree = false; +bool largeElement = false; Locale locale = const Locale('en', 'US'); int timeRange = 1; String timeStart = '09:00'; @@ -165,6 +166,7 @@ class MyApp extends StatefulWidget { bool? newAmoledTheme, bool? newMaterialColor, bool? newRoundDegree, + bool? newLargeElement, Locale? newLocale, int? newTimeRange, String? newTimeStart, @@ -183,6 +185,9 @@ class MyApp extends StatefulWidget { if (newRoundDegree != null) { state.changeRoundDegree(newRoundDegree); } + if (newLargeElement != null) { + state.changeLargeElement(newLargeElement); + } if (newLocale != null) { state.changeLocale(newLocale); } @@ -228,6 +233,12 @@ class _MyAppState extends State { }); } + void changeLargeElement(bool newLargeElement) { + setState(() { + largeElement = newLargeElement; + }); + } + void changeTimeRange(int newTimeRange) { setState(() { timeRange = newTimeRange; @@ -269,6 +280,7 @@ class _MyAppState extends State { amoledTheme = settings.amoledTheme; materialColor = settings.materialColor; roundDegree = settings.roundDegree; + largeElement = settings.largeElement; locale = Locale( settings.language!.substring(0, 2), settings.language!.substring(3)); timeRange = settings.timeRange ?? 1; diff --git a/lib/translation/bn_in.dart b/lib/translation/bn_in.dart index f4ef479..10ffbcb 100644 --- a/lib/translation/bn_in.dart +++ b/lib/translation/bn_in.dart @@ -128,5 +128,6 @@ class BnIn { 'openMeteo': 'Open-Meteo থেকে ডেটা (CC-BY 4.0)', 'hourlyVariables': 'ঘণ্টায় আবহাওয়ার পরিবর্তনশীল', 'dailyVariables': 'দৈনিক আবহাওয়ার পরিবর্তনশীল', + 'largeElement': 'বড় আবহাওয়া ডিসপ্লে', }; } diff --git a/lib/translation/cs_cz.dart b/lib/translation/cs_cz.dart index 1c853cd..ec7bf4d 100644 --- a/lib/translation/cs_cz.dart +++ b/lib/translation/cs_cz.dart @@ -128,5 +128,6 @@ class CsCz { 'openMeteo': 'Data z Open-Meteo (CC-BY 4.0)', 'hourlyVariables': 'Hodinové meteorologické proměnné', 'dailyVariables': 'Denní meteorologické proměnné', + 'largeElement': 'Velké zobrazení počasí', }; } diff --git a/lib/translation/da_dk.dart b/lib/translation/da_dk.dart index 5247ea8..288caa5 100644 --- a/lib/translation/da_dk.dart +++ b/lib/translation/da_dk.dart @@ -129,5 +129,6 @@ class DaDk { 'openMeteo': 'Data fra Open-Meteo (CC-BY 4.0)', 'hourlyVariables': 'Timevise vejrfaktorer', 'dailyVariables': 'Daglige vejrfaktorer', + 'largeElement': 'Stort vejrdisplay', }; } diff --git a/lib/translation/de_de.dart b/lib/translation/de_de.dart index 9336a62..5f61e64 100644 --- a/lib/translation/de_de.dart +++ b/lib/translation/de_de.dart @@ -130,5 +130,6 @@ class DeDe { 'openMeteo': 'Daten von Open-Meteo (CC-BY 4.0)', 'hourlyVariables': 'Stündliche Wettervariablen', 'dailyVariables': 'Tägliche Wettervariablen', + 'largeElement': 'Große Wetteranzeige', }; } diff --git a/lib/translation/en_us.dart b/lib/translation/en_us.dart index 6b4b494..f850f69 100644 --- a/lib/translation/en_us.dart +++ b/lib/translation/en_us.dart @@ -129,5 +129,6 @@ class EnUs { 'openMeteo': 'Data by Open-Meteo (CC-BY 4.0)', 'hourlyVariables': 'Hourly weather variables', 'dailyVariables': 'Daily weather variables', + 'largeElement': 'Large weather display', }; } diff --git a/lib/translation/es_es.dart b/lib/translation/es_es.dart index c4ee344..219038b 100644 --- a/lib/translation/es_es.dart +++ b/lib/translation/es_es.dart @@ -130,5 +130,6 @@ class EsEs { 'openMeteo': 'Datos de Open-Meteo (CC-BY 4.0)', 'hourlyVariables': 'Variables meteorológicas horarias', 'dailyVariables': 'Variables meteorológicas diarias', + 'largeElement': 'Visualización grande del clima', }; } diff --git a/lib/translation/fa_ir.dart b/lib/translation/fa_ir.dart index 8dd4d58..423c223 100644 --- a/lib/translation/fa_ir.dart +++ b/lib/translation/fa_ir.dart @@ -129,5 +129,6 @@ class FaIr { 'openMeteo': 'داده‌ها از Open-Meteo (CC-BY 4.0)', 'hourlyVariables': 'متغیرهای ساعتی هواشناسی', 'dailyVariables': 'متغیرهای روزانه هواشناسی', + 'largeElement': 'نمایش هواشناسی بزرگ', }; } diff --git a/lib/translation/fr_fr.dart b/lib/translation/fr_fr.dart index fab6bd4..ff5aea0 100644 --- a/lib/translation/fr_fr.dart +++ b/lib/translation/fr_fr.dart @@ -130,5 +130,6 @@ class FrFr { 'openMeteo': 'Données de Open-Meteo (CC-BY 4.0)', 'hourlyVariables': 'Variables météorologiques horaires', 'dailyVariables': 'Variables météorologiques quotidiennes', + 'largeElement': 'Affichage météo grand format', }; } diff --git a/lib/translation/ga_ie.dart b/lib/translation/ga_ie.dart index 708bc9b..89c8bcd 100644 --- a/lib/translation/ga_ie.dart +++ b/lib/translation/ga_ie.dart @@ -130,5 +130,6 @@ class GaIe { 'openMeteo': 'Sonraí ó Open-Meteo (CC-BY 4.0)', 'hourlyVariables': 'Athrógacha aimsire uaireanta', 'dailyVariables': 'Athrógacha aimsire laethúla', + 'largeElement': 'Taispeáint mór na haimsire', }; } diff --git a/lib/translation/hi_in.dart b/lib/translation/hi_in.dart index e546d63..97e0037 100644 --- a/lib/translation/hi_in.dart +++ b/lib/translation/hi_in.dart @@ -127,5 +127,6 @@ class HiIn { 'openMeteo': 'Open-Meteo से डेटा (CC-BY 4.0)', 'hourlyVariables': 'घंटेवार मौसम चर', 'dailyVariables': 'दैनिक मौसम चर', + 'largeElement': 'बड़े मौसम का प्रदर्शन', }; } diff --git a/lib/translation/hu_hu.dart b/lib/translation/hu_hu.dart index 628e565..7b616f3 100644 --- a/lib/translation/hu_hu.dart +++ b/lib/translation/hu_hu.dart @@ -130,5 +130,6 @@ class HuHu { 'openMeteo': 'Adatok az Open-Meteo-tól (CC-BY 4.0)', 'hourlyVariables': 'Óránkénti időjárási változók', 'dailyVariables': 'Napi időjárási változók', + 'largeElement': 'Nagy méretű időjárás megjelenítése', }; } diff --git a/lib/translation/it_it.dart b/lib/translation/it_it.dart index b79ca68..04f4651 100644 --- a/lib/translation/it_it.dart +++ b/lib/translation/it_it.dart @@ -130,5 +130,6 @@ class ItIt { 'openMeteo': 'Dati da Open-Meteo (CC-BY 4.0)', 'hourlyVariables': 'Variabili meteorologiche orarie', 'dailyVariables': 'Variabili meteorologiche giornaliere', + 'largeElement': 'Visualizzazione grande elemento meteo', }; } diff --git a/lib/translation/ka_ge.dart b/lib/translation/ka_ge.dart index 8f72162..2a92248 100644 --- a/lib/translation/ka_ge.dart +++ b/lib/translation/ka_ge.dart @@ -129,5 +129,6 @@ class KaGe { 'openMeteo': 'მონაცემები Open-Meteo-დან (CC-BY 4.0)', 'hourlyVariables': 'საათობრივი ამინდის ცვლადები', 'dailyVariables': 'ყოველდღიური ამინდის ცვლადები', + 'largeElement': 'გადიდი ამინდის გამოჩენა', }; } diff --git a/lib/translation/ko_kr.dart b/lib/translation/ko_kr.dart index 29a5b25..b47dea5 100644 --- a/lib/translation/ko_kr.dart +++ b/lib/translation/ko_kr.dart @@ -125,5 +125,6 @@ class KoKr { 'openMeteo': 'Open-Meteo의 데이터 (CC-BY 4.0)', 'hourlyVariables': '시간별 날씨 변수', 'dailyVariables': '일별 날씨 변수', + 'largeElement': '큰 날씨 표시', }; } diff --git a/lib/translation/nl_nl.dart b/lib/translation/nl_nl.dart index 05b0d46..9956b05 100644 --- a/lib/translation/nl_nl.dart +++ b/lib/translation/nl_nl.dart @@ -130,5 +130,6 @@ class NlNl { 'openMeteo': 'Gegevens van Open-Meteo (CC-BY 4.0)', 'hourlyVariables': 'Uurlijkse weervariabelen', 'dailyVariables': 'Dagelijkse weervariabelen', + 'largeElement': 'Groot weerbericht weergeven', }; } diff --git a/lib/translation/pl_pl.dart b/lib/translation/pl_pl.dart index 3502ec4..e89f868 100644 --- a/lib/translation/pl_pl.dart +++ b/lib/translation/pl_pl.dart @@ -128,5 +128,6 @@ class PlPl { 'openMeteo': 'Dane z Open-Meteo (CC-BY 4.0)', 'hourlyVariables': 'Godzinowe zmienne pogodowe', 'dailyVariables': 'Dzienne zmienne pogodowe', + 'largeElement': 'Duże wyświetlanie pogody', }; } diff --git a/lib/translation/pt_br.dart b/lib/translation/pt_br.dart index fc741aa..f4c4898 100644 --- a/lib/translation/pt_br.dart +++ b/lib/translation/pt_br.dart @@ -129,5 +129,6 @@ class PtBr { 'openMeteo': 'Dados do Open-Meteo (CC-BY 4.0)', 'hourlyVariables': 'Variáveis meteorológicas horárias', 'dailyVariables': 'Variáveis meteorológicas diárias', + 'largeElement': 'Exibição grande do clima', }; } diff --git a/lib/translation/ro_ro.dart b/lib/translation/ro_ro.dart index d249307..3fbf2d8 100644 --- a/lib/translation/ro_ro.dart +++ b/lib/translation/ro_ro.dart @@ -128,5 +128,6 @@ class RoRo { 'openMeteo': 'Date de la Open-Meteo (CC-BY 4.0)', 'hourlyVariables': 'Variabile meteorologice orare', 'dailyVariables': 'Variabile meteorologice zilnice', + 'largeElement': 'Afișare mare a vremii', }; } diff --git a/lib/translation/ru_ru.dart b/lib/translation/ru_ru.dart index facdc1c..8f5915c 100644 --- a/lib/translation/ru_ru.dart +++ b/lib/translation/ru_ru.dart @@ -129,5 +129,6 @@ class RuRu { 'openMeteo': 'Данные от Open-Meteo (CC-BY 4.0)', 'hourlyVariables': 'Почасовые погодные условия', 'dailyVariables': 'Ежедневные погодные условия', + 'largeElement': 'Отображение погоды большим элементом', }; } diff --git a/lib/translation/sk_sk.dart b/lib/translation/sk_sk.dart index 6b52942..3a09a15 100644 --- a/lib/translation/sk_sk.dart +++ b/lib/translation/sk_sk.dart @@ -128,5 +128,6 @@ class SkSk { 'openMeteo': 'Údaje od Open-Meteo (CC-BY 4.0)', 'hourlyVariables': 'Hodinové meteorologické premenné', 'dailyVariables': 'Denné meteorologické premenné', + 'largeElement': 'Veľké zobrazenie počasia', }; } diff --git a/lib/translation/tr_tr.dart b/lib/translation/tr_tr.dart index 7c2f3ba..47f17d5 100644 --- a/lib/translation/tr_tr.dart +++ b/lib/translation/tr_tr.dart @@ -128,5 +128,6 @@ class TrTr { 'openMeteo': 'Open-Meteo\'dan veriler (CC-BY 4.0)', 'hourlyVariables': 'Saatlik hava değişkenleri', 'dailyVariables': 'Günlük hava değişkenleri', + 'largeElement': 'Büyük hava durumu gösterimi', }; } diff --git a/lib/translation/ur_pk.dart b/lib/translation/ur_pk.dart index d7fae52..bc9e8a6 100644 --- a/lib/translation/ur_pk.dart +++ b/lib/translation/ur_pk.dart @@ -129,5 +129,6 @@ class UrPk { 'openMeteo': 'Open-Meteo سے ڈیٹا (CC-BY 4.0)', 'hourlyVariables': 'ہر گھنٹے کے موسمی متغیرات', 'dailyVariables': 'روزانہ کے موسمی متغیرات', + 'largeElement': 'بڑے موسم کا ڈسپلے', }; } diff --git a/lib/translation/zh_ch.dart b/lib/translation/zh_ch.dart index 4959aea..b897c28 100644 --- a/lib/translation/zh_ch.dart +++ b/lib/translation/zh_ch.dart @@ -124,5 +124,6 @@ class ZhCh { 'openMeteo': '来自Open-Meteo的数据 (CC-BY 4.0)', 'hourlyVariables': '每小时天气变量', 'dailyVariables': '每日天气变量', + 'largeElement': '大天气显示', }; } diff --git a/lib/translation/zh_tw.dart b/lib/translation/zh_tw.dart index 82f2bb5..9b1d448 100644 --- a/lib/translation/zh_tw.dart +++ b/lib/translation/zh_tw.dart @@ -125,5 +125,6 @@ class ZhTw { 'openMeteo': '來自Open-Meteo的數據 (CC-BY 4.0)', 'hourlyVariables': '每小時天氣變量', 'dailyVariables': '每日天氣變量', + 'largeElement': '大型天氣顯示', }; } From 33ceb30885cb594b3a7c6b413ff9b97b4b1f12f2 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sat, 13 Jul 2024 07:00:58 +0300 Subject: [PATCH 03/41] Fix api code --- lib/app/api/api.dart | 216 +++++++++++++++-------------- lib/app/controller/controller.dart | 8 +- pubspec.yaml | 2 +- 3 files changed, 116 insertions(+), 110 deletions(-) diff --git a/lib/app/api/api.dart b/lib/app/api/api.dart index 0872812..8cf7b8e 100644 --- a/lib/app/api/api.dart +++ b/lib/app/api/api.dart @@ -11,59 +11,28 @@ class WeatherAPI { ..options.baseUrl = 'https://api.open-meteo.com/v1/forecast?'; final Dio dioLocation = Dio(); - Future getWeatherData(double? lat, double? lon) async { - String url = - '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,dewpoint_2m,precipitation_probability,shortwave_radiation&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=12&timezone=auto'; - String urlWeather; - settings.measurements == 'imperial' && settings.degrees == 'fahrenheit' - ? urlWeather = - '$url&temperature_unit=fahrenheit&windspeed_unit=mph&precipitation_unit=inch' - : settings.measurements == 'imperial' - ? urlWeather = '$url&windspeed_unit=mph&precipitation_unit=inch' - : settings.degrees == 'fahrenheit' - ? urlWeather = '$url&temperature_unit=fahrenheit' - : urlWeather = url; + static const String _weatherParams = + 'hourly=temperature_2m,relativehumidity_2m,apparent_temperature,precipitation,rain,weathercode,surface_pressure,visibility,evapotranspiration,windspeed_10m,winddirection_10m,windgusts_10m,cloudcover,uv_index,dewpoint_2m,precipitation_probability,shortwave_radiation' + '&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=12&timezone=auto'; + + String _buildWeatherUrl(double lat, double lon) { + String url = 'latitude=$lat&longitude=$lon&$_weatherParams'; + if (settings.measurements == 'imperial') { + url += '&windspeed_unit=mph&precipitation_unit=inch'; + } + if (settings.degrees == 'fahrenheit') { + url += '&temperature_unit=fahrenheit'; + } + return url; + } + + Future getWeatherData(double lat, double lon) async { + final String urlWeather = _buildWeatherUrl(lat, lon); try { Response response = await dio.get(urlWeather); WeatherDataApi weatherData = WeatherDataApi.fromJson(response.data); - return MainWeatherCache( - time: weatherData.hourly.time, - temperature2M: weatherData.hourly.temperature2M, - relativehumidity2M: weatherData.hourly.relativeHumidity2M, - apparentTemperature: weatherData.hourly.apparentTemperature, - precipitation: weatherData.hourly.precipitation, - rain: weatherData.hourly.rain, - weathercode: weatherData.hourly.weatherCode, - surfacePressure: weatherData.hourly.surfacePressure, - visibility: weatherData.hourly.visibility, - evapotranspiration: weatherData.hourly.evapotranspiration, - windspeed10M: weatherData.hourly.windSpeed10M, - winddirection10M: weatherData.hourly.windDirection10M, - windgusts10M: weatherData.hourly.windGusts10M, - cloudcover: weatherData.hourly.cloudCover, - uvIndex: weatherData.hourly.uvIndex, - dewpoint2M: weatherData.hourly.dewpoint2M, - precipitationProbability: weatherData.hourly.precipitationProbability, - shortwaveRadiation: weatherData.hourly.shortwaveRadiation, - timeDaily: weatherData.daily.time, - weathercodeDaily: weatherData.daily.weatherCode, - temperature2MMax: weatherData.daily.temperature2MMax, - temperature2MMin: weatherData.daily.temperature2MMin, - apparentTemperatureMax: weatherData.daily.apparentTemperatureMax, - apparentTemperatureMin: weatherData.daily.apparentTemperatureMin, - sunrise: weatherData.daily.sunrise, - sunset: weatherData.daily.sunset, - precipitationSum: weatherData.daily.precipitationSum, - precipitationProbabilityMax: - weatherData.daily.precipitationProbabilityMax, - windspeed10MMax: weatherData.daily.windSpeed10MMax, - windgusts10MMax: weatherData.daily.windGusts10MMax, - uvIndexMax: weatherData.daily.uvIndexMax, - rainSum: weatherData.daily.rainSum, - winddirection10MDominant: weatherData.daily.windDirection10MDominant, - timezone: weatherData.timezone, - timestamp: DateTime.now(), - ); + return _mapWeatherDataToCache(weatherData); } on DioException catch (e) { if (kDebugMode) { print(e); @@ -72,64 +41,14 @@ class WeatherAPI { } } - Future getWeatherCard(double? lat, double? lon, String city, + Future getWeatherCard(double lat, double lon, String city, String district, String timezone) async { - String url = - '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,dewpoint_2m,precipitation_probability,shortwave_radiation&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=12&timezone=auto'; - String urlWeather; - settings.measurements == 'imperial' && settings.degrees == 'fahrenheit' - ? urlWeather = - '$url&temperature_unit=fahrenheit&windspeed_unit=mph&precipitation_unit=inch' - : settings.measurements == 'imperial' - ? urlWeather = '$url&windspeed_unit=mph&precipitation_unit=inch' - : settings.degrees == 'fahrenheit' - ? urlWeather = '$url&temperature_unit=fahrenheit' - : urlWeather = url; + final String urlWeather = _buildWeatherUrl(lat, lon); try { Response response = await dio.get(urlWeather); WeatherDataApi weatherData = WeatherDataApi.fromJson(response.data); - return WeatherCard( - time: weatherData.hourly.time, - temperature2M: weatherData.hourly.temperature2M, - relativehumidity2M: weatherData.hourly.relativeHumidity2M, - apparentTemperature: weatherData.hourly.apparentTemperature, - precipitation: weatherData.hourly.precipitation, - rain: weatherData.hourly.rain, - weathercode: weatherData.hourly.weatherCode, - surfacePressure: weatherData.hourly.surfacePressure, - visibility: weatherData.hourly.visibility, - evapotranspiration: weatherData.hourly.evapotranspiration, - windspeed10M: weatherData.hourly.windSpeed10M, - winddirection10M: weatherData.hourly.windDirection10M, - windgusts10M: weatherData.hourly.windGusts10M, - cloudcover: weatherData.hourly.cloudCover, - uvIndex: weatherData.hourly.uvIndex, - dewpoint2M: weatherData.hourly.dewpoint2M, - precipitationProbability: weatherData.hourly.precipitationProbability, - shortwaveRadiation: weatherData.hourly.shortwaveRadiation, - timeDaily: weatherData.daily.time, - weathercodeDaily: weatherData.daily.weatherCode, - temperature2MMax: weatherData.daily.temperature2MMax, - temperature2MMin: weatherData.daily.temperature2MMin, - apparentTemperatureMax: weatherData.daily.apparentTemperatureMax, - apparentTemperatureMin: weatherData.daily.apparentTemperatureMin, - sunrise: weatherData.daily.sunrise, - sunset: weatherData.daily.sunset, - precipitationSum: weatherData.daily.precipitationSum, - precipitationProbabilityMax: - weatherData.daily.precipitationProbabilityMax, - windspeed10MMax: weatherData.daily.windSpeed10MMax, - windgusts10MMax: weatherData.daily.windGusts10MMax, - uvIndexMax: weatherData.daily.uvIndexMax, - rainSum: weatherData.daily.rainSum, - winddirection10MDominant: weatherData.daily.windDirection10MDominant, - lat: lat, - lon: lon, - city: city, - district: district, - timezone: timezone, - timestamp: DateTime.now(), - ); + return _mapWeatherDataToCard( + weatherData, lat, lon, city, district, timezone); } on DioException catch (e) { if (kDebugMode) { print(e); @@ -139,7 +58,7 @@ class WeatherAPI { } Future> getCity(String query, Locale? locale) async { - final url = + final String url = 'https://geocoding-api.open-meteo.com/v1/search?name=$query&count=5&language=${locale?.languageCode}&format=json'; try { Response response = await dioLocation.get(url); @@ -163,4 +82,91 @@ class WeatherAPI { rethrow; } } + + MainWeatherCache _mapWeatherDataToCache(WeatherDataApi weatherData) { + return MainWeatherCache( + time: weatherData.hourly.time, + temperature2M: weatherData.hourly.temperature2M, + relativehumidity2M: weatherData.hourly.relativeHumidity2M, + apparentTemperature: weatherData.hourly.apparentTemperature, + precipitation: weatherData.hourly.precipitation, + rain: weatherData.hourly.rain, + weathercode: weatherData.hourly.weatherCode, + surfacePressure: weatherData.hourly.surfacePressure, + visibility: weatherData.hourly.visibility, + evapotranspiration: weatherData.hourly.evapotranspiration, + windspeed10M: weatherData.hourly.windSpeed10M, + winddirection10M: weatherData.hourly.windDirection10M, + windgusts10M: weatherData.hourly.windGusts10M, + cloudcover: weatherData.hourly.cloudCover, + uvIndex: weatherData.hourly.uvIndex, + dewpoint2M: weatherData.hourly.dewpoint2M, + precipitationProbability: weatherData.hourly.precipitationProbability, + shortwaveRadiation: weatherData.hourly.shortwaveRadiation, + timeDaily: weatherData.daily.time, + weathercodeDaily: weatherData.daily.weatherCode, + temperature2MMax: weatherData.daily.temperature2MMax, + temperature2MMin: weatherData.daily.temperature2MMin, + apparentTemperatureMax: weatherData.daily.apparentTemperatureMax, + apparentTemperatureMin: weatherData.daily.apparentTemperatureMin, + sunrise: weatherData.daily.sunrise, + sunset: weatherData.daily.sunset, + precipitationSum: weatherData.daily.precipitationSum, + precipitationProbabilityMax: + weatherData.daily.precipitationProbabilityMax, + windspeed10MMax: weatherData.daily.windSpeed10MMax, + windgusts10MMax: weatherData.daily.windGusts10MMax, + uvIndexMax: weatherData.daily.uvIndexMax, + rainSum: weatherData.daily.rainSum, + winddirection10MDominant: weatherData.daily.windDirection10MDominant, + timezone: weatherData.timezone, + timestamp: DateTime.now(), + ); + } + + WeatherCard _mapWeatherDataToCard(WeatherDataApi weatherData, double lat, + double lon, String city, String district, String timezone) { + return WeatherCard( + time: weatherData.hourly.time, + temperature2M: weatherData.hourly.temperature2M, + relativehumidity2M: weatherData.hourly.relativeHumidity2M, + apparentTemperature: weatherData.hourly.apparentTemperature, + precipitation: weatherData.hourly.precipitation, + rain: weatherData.hourly.rain, + weathercode: weatherData.hourly.weatherCode, + surfacePressure: weatherData.hourly.surfacePressure, + visibility: weatherData.hourly.visibility, + evapotranspiration: weatherData.hourly.evapotranspiration, + windspeed10M: weatherData.hourly.windSpeed10M, + winddirection10M: weatherData.hourly.windDirection10M, + windgusts10M: weatherData.hourly.windGusts10M, + cloudcover: weatherData.hourly.cloudCover, + uvIndex: weatherData.hourly.uvIndex, + dewpoint2M: weatherData.hourly.dewpoint2M, + precipitationProbability: weatherData.hourly.precipitationProbability, + shortwaveRadiation: weatherData.hourly.shortwaveRadiation, + timeDaily: weatherData.daily.time, + weathercodeDaily: weatherData.daily.weatherCode, + temperature2MMax: weatherData.daily.temperature2MMax, + temperature2MMin: weatherData.daily.temperature2MMin, + apparentTemperatureMax: weatherData.daily.apparentTemperatureMax, + apparentTemperatureMin: weatherData.daily.apparentTemperatureMin, + sunrise: weatherData.daily.sunrise, + sunset: weatherData.daily.sunset, + precipitationSum: weatherData.daily.precipitationSum, + precipitationProbabilityMax: + weatherData.daily.precipitationProbabilityMax, + windspeed10MMax: weatherData.daily.windSpeed10MMax, + windgusts10MMax: weatherData.daily.windGusts10MMax, + uvIndexMax: weatherData.daily.uvIndexMax, + rainSum: weatherData.daily.rainSum, + winddirection10MDominant: weatherData.daily.windDirection10MDominant, + lat: lat, + lon: lon, + city: city, + district: district, + timezone: timezone, + timestamp: DateTime.now(), + ); + } } diff --git a/lib/app/controller/controller.dart b/lib/app/controller/controller.dart index 56149f2..11e145e 100644 --- a/lib/app/controller/controller.dart +++ b/lib/app/controller/controller.dart @@ -316,8 +316,8 @@ class WeatherController extends GetxController { } for (var oldCard in weatherCard) { - var updatedCard = await WeatherAPI().getWeatherCard(oldCard.lat, - oldCard.lon, oldCard.city!, oldCard.district!, oldCard.timezone!); + var updatedCard = await WeatherAPI().getWeatherCard(oldCard.lat!, + oldCard.lon!, oldCard.city!, oldCard.district!, oldCard.timezone!); isar.writeTxnSync(() { oldCard ..time = updatedCard.time @@ -372,8 +372,8 @@ class WeatherController extends GetxController { } final updatedCard = await WeatherAPI().getWeatherCard( - weatherCard.lat, - weatherCard.lon, + weatherCard.lat!, + weatherCard.lon!, weatherCard.city!, weatherCard.district!, weatherCard.timezone!, diff --git a/pubspec.yaml b/pubspec.yaml index 7e6b1ba..ba187cb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,7 +3,7 @@ description: Weather application publish_to: "none" -version: 1.3.2+35 +version: 1.3.4+37 environment: sdk: ">=3.4.3 <4.0.0" From fc246ac5a2e29988d0233b7ef318e8f406040996 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Wed, 24 Jul 2024 23:07:35 +0300 Subject: [PATCH 04/41] Add new form create_card_weather --- .../cards/widgets/create_card_weather.dart | 109 +++++++++--------- lib/app/widgets/button.dart | 7 +- pubspec.lock | 50 ++++---- pubspec.yaml | 8 +- .../flutter/generated_plugin_registrant.cc | 3 + windows/flutter/generated_plugins.cmake | 1 + 6 files changed, 95 insertions(+), 83 deletions(-) diff --git a/lib/app/modules/cards/widgets/create_card_weather.dart b/lib/app/modules/cards/widgets/create_card_weather.dart index 6e3254a..49b4504 100644 --- a/lib/app/modules/cards/widgets/create_card_weather.dart +++ b/lib/app/modules/cards/widgets/create_card_weather.dart @@ -4,6 +4,7 @@ import 'package:iconsax/iconsax.dart'; import 'package:rain/app/api/api.dart'; import 'package:rain/app/api/city.dart'; import 'package:rain/app/controller/controller.dart'; +import 'package:rain/app/widgets/button.dart'; import 'package:rain/app/widgets/text_form.dart'; import 'package:rain/main.dart'; @@ -61,50 +62,13 @@ class _CreateWeatherCardState extends State { mainAxisSize: MainAxisSize.min, children: [ Padding( - padding: const EdgeInsets.fromLTRB(10, 10, 10, 0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - IconButton( - onPressed: () { - Get.back(); - }, - icon: const Icon( - Iconsax.close_square, - size: 18, - ), - ), - Text( - 'create'.tr, - style: context.textTheme.titleLarge?.copyWith( - fontSize: 20, - ), - textAlign: TextAlign.center, - ), - IconButton( - onPressed: () async { - if (formKey.currentState!.validate()) { - textTrim(_controllerLat); - textTrim(_controllerLon); - textTrim(_controllerCity); - textTrim(_controllerDistrict); - setState(() => isLoading = true); - await weatherController.addCardWeather( - double.parse(_controllerLat.text), - double.parse(_controllerLon.text), - _controllerCity.text, - _controllerDistrict.text, - ); - setState(() => isLoading = false); - Get.back(); - } - }, - icon: const Icon( - Iconsax.tick_square, - size: 18, - ), - ), - ], + padding: const EdgeInsets.fromLTRB(10, 15, 10, 5), + child: Text( + 'create'.tr, + style: context.textTheme.titleLarge?.copyWith( + fontSize: 20, + ), + textAlign: TextAlign.center, ), ), RawAutocomplete( @@ -120,8 +84,8 @@ class _CreateWeatherCardState extends State { type: TextInputType.text, icon: const Icon(Iconsax.global_search), controller: _controller, - margin: - const EdgeInsets.only(left: 10, right: 10, top: 10), + margin: const EdgeInsets.only( + left: 10, right: 10, top: 10), focusNode: _focusNode, ); }, @@ -132,7 +96,8 @@ class _CreateWeatherCardState extends State { return WeatherAPI() .getCity(textEditingValue.text, locale); }, - onSelected: (Result selection) => fillController(selection), + onSelected: (Result selection) => + fillController(selection), displayStringForOption: (Result option) => '${option.name}, ${option.admin1}', optionsViewBuilder: (BuildContext context, @@ -150,7 +115,8 @@ class _CreateWeatherCardState extends State { shrinkWrap: true, itemCount: options.length, itemBuilder: (BuildContext context, int index) { - final Result option = options.elementAt(index); + final Result option = + options.elementAt(index); return InkWell( onTap: () => onSelected(option), child: ListTile( @@ -173,7 +139,9 @@ class _CreateWeatherCardState extends State { labelText: 'lat'.tr, type: TextInputType.number, icon: const Icon(Iconsax.location), - margin: const EdgeInsets.only(left: 10, right: 10, top: 10), + onChanged: (value) => setState(() {}), + margin: + const EdgeInsets.only(left: 10, right: 10, top: 10), validator: (value) { if (value == null || value.isEmpty) { return 'validateValue'.tr; @@ -194,7 +162,9 @@ class _CreateWeatherCardState extends State { labelText: 'lon'.tr, type: TextInputType.number, icon: const Icon(Iconsax.location), - margin: const EdgeInsets.only(left: 10, right: 10, top: 10), + onChanged: (value) => setState(() {}), + margin: + const EdgeInsets.only(left: 10, right: 10, top: 10), validator: (value) { if (value == null || value.isEmpty) { return 'validateValue'.tr; @@ -215,7 +185,9 @@ class _CreateWeatherCardState extends State { labelText: 'city'.tr, type: TextInputType.name, icon: const Icon(Icons.location_city_rounded), - margin: const EdgeInsets.only(left: 10, right: 10, top: 10), + onChanged: (value) => setState(() {}), + margin: + const EdgeInsets.only(left: 10, right: 10, top: 10), validator: (value) { if (value == null || value.isEmpty) { return 'validateName'.tr; @@ -229,7 +201,9 @@ class _CreateWeatherCardState extends State { labelText: 'district'.tr, type: TextInputType.streetAddress, icon: const Icon(Iconsax.global), - margin: const EdgeInsets.only(left: 10, right: 10, top: 10), + onChanged: (value) => setState(() {}), + margin: + const EdgeInsets.only(left: 10, right: 10, top: 10), validator: (value) { if (value == null || value.isEmpty) { return 'validateName'.tr; @@ -237,7 +211,36 @@ class _CreateWeatherCardState extends State { return null; }, ), - const SizedBox(height: 20), + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 10, vertical: 10), + child: Visibility( + visible: _controllerLon.text.isNotEmpty && + _controllerLat.text.isNotEmpty && + _controllerCity.text.isNotEmpty && + _controllerDistrict.text.isNotEmpty, + child: MyTextButton( + buttonName: 'done'.tr, + onPressed: () async { + if (formKey.currentState!.validate()) { + textTrim(_controllerLat); + textTrim(_controllerLon); + textTrim(_controllerCity); + textTrim(_controllerDistrict); + setState(() => isLoading = true); + await weatherController.addCardWeather( + double.parse(_controllerLat.text), + double.parse(_controllerLon.text), + _controllerCity.text, + _controllerDistrict.text, + ); + setState(() => isLoading = false); + Get.back(); + } + }, + ), + ), + ), ], ), ), diff --git a/lib/app/widgets/button.dart b/lib/app/widgets/button.dart index 939380c..65cca54 100644 --- a/lib/app/widgets/button.dart +++ b/lib/app/widgets/button.dart @@ -8,7 +8,7 @@ class MyTextButton extends StatelessWidget { required this.onPressed, }); final String buttonName; - final VoidCallback onPressed; + final VoidCallback? onPressed; @override Widget build(BuildContext context) { @@ -16,6 +16,11 @@ class MyTextButton extends StatelessWidget { height: 50, width: double.infinity, child: ElevatedButton( + style: ButtonStyle( + shadowColor: const WidgetStatePropertyAll(Colors.transparent), + backgroundColor: WidgetStatePropertyAll( + context.theme.colorScheme.secondaryContainer.withAlpha(80)), + ), onPressed: onPressed, child: Text( buttonName, diff --git a/pubspec.lock b/pubspec.lock index 2c145dd..71c146b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -355,18 +355,18 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: "0a9068149f0225e81642b03562e99776106edbd967816ee68bc16310d457c60e" + sha256: dd6676d8c2926537eccdf9f72128bbb2a9d0814689527b17f92c248ff192eaf3 url: "https://pub.dev" source: hosted - version: "17.2.1+1" + version: "17.2.1+2" flutter_local_notifications_linux: dependency: transitive description: name: flutter_local_notifications_linux - sha256: "33f741ef47b5f63cc7f78fe75eeeac7e19f171ff3c3df054d84c1e38bedb6a03" + sha256: c49bd06165cad9beeb79090b18cd1eb0296f4bf4b23b84426e37dd7c027fc3af url: "https://pub.dev" source: hosted - version: "4.0.0+1" + version: "4.0.1" flutter_local_notifications_platform_interface: dependency: transitive description: @@ -397,10 +397,10 @@ packages: dependency: "direct main" description: name: flutter_timezone - sha256: f9c328f66d58cd2af8a0cbd2f84d0c211fda8b7332b5e458d9848bd9ec936120 + sha256: "0cb5498dedfaac615c779138194052f04524c31d958fab33d378f22b6cc14686" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.1.0" flutter_web_plugins: dependency: transitive description: flutter @@ -418,10 +418,10 @@ packages: dependency: "direct main" description: name: freezed_annotation - sha256: f9f6597ac43cc262fa7d7f2e65259a6060c23a560525d1f2631be374540f2a9b + sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 url: "https://pub.dev" source: hosted - version: "2.4.3" + version: "2.4.4" frontend_server_client: dependency: transitive description: @@ -538,10 +538,10 @@ packages: dependency: transitive description: name: graphs - sha256: aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19 + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" home_widget: dependency: "direct main" description: @@ -562,10 +562,10 @@ packages: dependency: transitive description: name: http - sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938" + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" http_multi_server: dependency: transitive description: @@ -1063,18 +1063,18 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: ceb2625f0c24ade6ef6778d1de0b2e44f2db71fded235eb52295247feba8c5cf + sha256: "95d8027db36a0e52caf55680f91e33ea6aa12a3ce608c90b06f4e429a21067ac" url: "https://pub.dev" source: hosted - version: "6.3.3" + version: "6.3.5" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "7068716403343f6ba4969b4173cbf3b84fc768042124bc2c011e5d782b24fe89" + sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.3.1" url_launcher_linux: dependency: transitive description: @@ -1111,18 +1111,18 @@ packages: dependency: transitive description: name: url_launcher_windows - sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7 + sha256: "49c10f879746271804767cb45551ec5592cdab00ee105c06dddde1a98f73b185" url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" uuid: dependency: transitive description: name: uuid - sha256: "814e9e88f21a176ae1359149021870e87f7cddaf633ab678a5d2b0bff7fd1ba8" + sha256: "83d37c7ad7aaf9aa8e275490669535c8080377cfa7a7004c24dfac53afffaa90" url: "https://pub.dev" source: hosted - version: "4.4.0" + version: "4.4.2" vector_math: dependency: transitive description: @@ -1159,18 +1159,18 @@ packages: dependency: transitive description: name: web_socket - sha256: "24301d8c293ce6fe327ffe6f59d8fd8834735f0ec36e4fd383ec7ff8a64aa078" + sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" url: "https://pub.dev" source: hosted - version: "0.1.5" + version: "0.1.6" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: a2d56211ee4d35d9b344d9d4ce60f362e4f5d1aafb988302906bd732bc731276 + sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "3.0.1" win32: dependency: transitive description: @@ -1228,5 +1228,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.4.3 <4.0.0" + dart: ">=3.4.4 <4.0.0" flutter: ">=3.22.0" diff --git a/pubspec.yaml b/pubspec.yaml index ba187cb..3298ded 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -6,7 +6,7 @@ publish_to: "none" version: 1.3.4+37 environment: - sdk: ">=3.4.3 <4.0.0" + sdk: ">=3.4.4 <4.0.0" dependencies: flutter: @@ -36,11 +36,11 @@ dependencies: path_provider: ^2.1.3 # quick_settings: ^1.0.1 json_annotation: ^4.9.0 - flutter_timezone: ^2.0.1 + flutter_timezone: ^2.1.0 device_info_plus: ^10.1.0 package_info_plus: ^8.0.0 connectivity_plus: ^6.0.3 - freezed_annotation: ^2.4.3 + freezed_annotation: ^2.4.4 isar_flutter_libs: version: ^3.1.7 hosted: https://pub.isar-community.dev/ @@ -49,7 +49,7 @@ dependencies: # font_awesome_flutter: ^10.7.0 flutter_hsvcolor_picker: ^1.5.1 scrollable_positioned_list: ^0.3.8 - flutter_local_notifications: ^17.2.1+1 + flutter_local_notifications: ^17.2.1+2 internet_connection_checker_plus: ^2.5.0 # Uncomment this for publishing FLOSS variant diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index f8a9621..5bedd61 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -8,6 +8,7 @@ #include #include +#include #include #include #include @@ -17,6 +18,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin")); DynamicColorPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("DynamicColorPluginCApi")); + FlutterTimezonePluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FlutterTimezonePluginCApi")); GeolocatorWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("GeolocatorWindows")); IsarFlutterLibsPluginRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index ca34188..9d63f71 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 + flutter_timezone geolocator_windows isar_flutter_libs url_launcher_windows From dd579381538980f032068771da87d684997c6ae5 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Mon, 29 Jul 2024 22:37:08 +0300 Subject: [PATCH 05/41] Fix anim new add form && Add feels to the top tile --- .../modules/cards/view/info_weather_card.dart | 1 + .../cards/widgets/create_card_weather.dart | 60 +++++++++++++++---- lib/app/modules/main/view/weather.dart | 1 + lib/app/widgets/daily/info_daily_card.dart | 2 + lib/app/widgets/daily/weather_daily.dart | 5 +- lib/app/widgets/now/weather_now.dart | 16 ++++- pubspec.lock | 40 ++++++------- pubspec.yaml | 6 +- 8 files changed, 89 insertions(+), 42 deletions(-) diff --git a/lib/app/modules/cards/view/info_weather_card.dart b/lib/app/modules/cards/view/info_weather_card.dart index 22def54..0f40622 100644 --- a/lib/app/modules/cards/view/info_weather_card.dart +++ b/lib/app/modules/cards/view/info_weather_card.dart @@ -91,6 +91,7 @@ class _InfoWeatherCardState extends State { time: weatherCard.time![timeNow], weather: weatherCard.weathercode![timeNow], degree: weatherCard.temperature2M![timeNow], + feels: weatherCard.apparentTemperature![timeNow]!, timeDay: weatherCard.sunrise![dayNow], timeNight: weatherCard.sunset![dayNow], tempMax: weatherCard.temperature2MMax![dayNow]!, diff --git a/lib/app/modules/cards/widgets/create_card_weather.dart b/lib/app/modules/cards/widgets/create_card_weather.dart index 49b4504..6dea2ed 100644 --- a/lib/app/modules/cards/widgets/create_card_weather.dart +++ b/lib/app/modules/cards/widgets/create_card_weather.dart @@ -15,7 +15,8 @@ class CreateWeatherCard extends StatefulWidget { State createState() => _CreateWeatherCardState(); } -class _CreateWeatherCardState extends State { +class _CreateWeatherCardState extends State + with SingleTickerProviderStateMixin { bool isLoading = false; final formKey = GlobalKey(); final _focusNode = FocusNode(); @@ -26,14 +27,41 @@ class _CreateWeatherCardState extends State { final _controllerCity = TextEditingController(); final _controllerDistrict = TextEditingController(); - textTrim(value) { + late AnimationController _animationController; + late Animation _animation; + + @override + void initState() { + super.initState(); + _animationController = AnimationController( + duration: const Duration(milliseconds: 300), + vsync: this, + ); + _animation = CurvedAnimation( + parent: _animationController, + curve: Curves.easeInOut, + ); + } + + @override + void dispose() { + _animationController.dispose(); + _controller.dispose(); + _controllerLat.dispose(); + _controllerLon.dispose(); + _controllerCity.dispose(); + _controllerDistrict.dispose(); + super.dispose(); + } + + void textTrim(TextEditingController value) { value.text = value.text.trim(); while (value.text.contains(' ')) { value.text = value.text.replaceAll(' ', ' '); } } - void fillController(selection) { + void fillController(Result selection) { _controllerLat.text = '${selection.latitude}'; _controllerLon.text = '${selection.longitude}'; _controllerCity.text = selection.name; @@ -46,6 +74,17 @@ class _CreateWeatherCardState extends State { @override Widget build(BuildContext context) { const kTextFieldElevation = 4.0; + bool showButton = _controllerLon.text.isNotEmpty && + _controllerLat.text.isNotEmpty && + _controllerCity.text.isNotEmpty && + _controllerDistrict.text.isNotEmpty; + + if (showButton) { + _animationController.forward(); + } else { + _animationController.reverse(); + } + return Padding( padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), child: Form( @@ -62,12 +101,11 @@ class _CreateWeatherCardState extends State { mainAxisSize: MainAxisSize.min, children: [ Padding( - padding: const EdgeInsets.fromLTRB(10, 15, 10, 5), + padding: const EdgeInsets.only(top: 14, bottom: 7), child: Text( 'create'.tr, - style: context.textTheme.titleLarge?.copyWith( - fontSize: 20, - ), + style: context.textTheme.titleLarge + ?.copyWith(fontWeight: FontWeight.bold), textAlign: TextAlign.center, ), ), @@ -214,11 +252,9 @@ class _CreateWeatherCardState extends State { Padding( padding: const EdgeInsets.symmetric( horizontal: 10, vertical: 10), - child: Visibility( - visible: _controllerLon.text.isNotEmpty && - _controllerLat.text.isNotEmpty && - _controllerCity.text.isNotEmpty && - _controllerDistrict.text.isNotEmpty, + child: SizeTransition( + sizeFactor: _animation, + axisAlignment: -1.0, child: MyTextButton( buttonName: 'done'.tr, onPressed: () async { diff --git a/lib/app/modules/main/view/weather.dart b/lib/app/modules/main/view/weather.dart index efde67e..4cba272 100644 --- a/lib/app/modules/main/view/weather.dart +++ b/lib/app/modules/main/view/weather.dart @@ -73,6 +73,7 @@ class _WeatherPageState extends State { time: mainWeather.time![hourOfDay], weather: mainWeather.weathercode![hourOfDay], degree: mainWeather.temperature2M![hourOfDay], + feels: mainWeather.apparentTemperature![hourOfDay]!, timeDay: sunrise, timeNight: sunset, tempMax: tempMax!, diff --git a/lib/app/widgets/daily/info_daily_card.dart b/lib/app/widgets/daily/info_daily_card.dart index f56f19f..02d5445 100644 --- a/lib/app/widgets/daily/info_daily_card.dart +++ b/lib/app/widgets/daily/info_daily_card.dart @@ -123,6 +123,8 @@ class _InfoDailyCardState extends State { weatherData.weathercode![startIndex + hourOfDay], degree: weatherData .temperature2M![startIndex + hourOfDay], + feels: weatherData + .apparentTemperature![startIndex + hourOfDay]!, time: weatherData.time![startIndex + hourOfDay], timeDay: sunrise, timeNight: sunset, diff --git a/lib/app/widgets/daily/weather_daily.dart b/lib/app/widgets/daily/weather_daily.dart index 57d1d99..e809c4b 100644 --- a/lib/app/widgets/daily/weather_daily.dart +++ b/lib/app/widgets/daily/weather_daily.dart @@ -36,9 +36,6 @@ class _WeatherDailyState extends State { final weatherCodeDaily = weatherData.weathercodeDaily ?? []; final textTheme = context.textTheme; final labelLarge = textTheme.labelLarge; - final bodyMediumGrey = textTheme.bodyMedium?.copyWith( - color: Colors.grey, - ); return Card( margin: const EdgeInsets.only(bottom: 15), @@ -107,7 +104,7 @@ class _WeatherDailyState extends State { ), Text( ' / ', - style: bodyMediumGrey, + style: labelLarge, ), Text( statusData.getDegree( diff --git a/lib/app/widgets/now/weather_now.dart b/lib/app/widgets/now/weather_now.dart index 8d97f11..2f4e039 100644 --- a/lib/app/widgets/now/weather_now.dart +++ b/lib/app/widgets/now/weather_now.dart @@ -16,6 +16,7 @@ class WeatherNow extends StatefulWidget { required this.timeNight, required this.tempMax, required this.tempMin, + required this.feels, }); final String time; final String timeDay; @@ -24,6 +25,7 @@ class WeatherNow extends StatefulWidget { final double degree; final double tempMax; final double tempMin; + final double feels; @override State createState() => _WeatherNowState(); @@ -97,6 +99,16 @@ class _WeatherNowState extends State { style: context.textTheme.titleLarge ?.copyWith(fontSize: 20), ), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('feels'.tr, + style: context.textTheme.bodyMedium), + Text(' • ', style: context.textTheme.bodyMedium), + Text(statusData.getDegree(widget.feels.round()), + style: context.textTheme.bodyMedium), + ], + ), const SizedBox(height: 30), Text( statusData.getDegree(roundDegree @@ -112,9 +124,7 @@ class _WeatherNowState extends State { children: [ Text(statusData.getDegree((widget.tempMin.round())), style: context.textTheme.labelLarge), - Text(' / ', - style: context.textTheme.labelLarge - ?.copyWith(color: Colors.grey)), + Text(' / ', style: context.textTheme.labelLarge), Text(statusData.getDegree((widget.tempMax.round())), style: context.textTheme.labelLarge), ], diff --git a/pubspec.lock b/pubspec.lock index 71c146b..c18b7b8 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -173,18 +173,18 @@ packages: dependency: "direct main" description: name: connectivity_plus - sha256: db7a4e143dc72cc3cb2044ef9b052a7ebfe729513e6a82943bc3526f784365b8 + sha256: "3e7d1d9dbae40ae82cbe6c23c518f0c4ffe32764ee9749b9a99d32cbac8734f6" url: "https://pub.dev" source: hosted - version: "6.0.3" + version: "6.0.4" connectivity_plus_platform_interface: dependency: transitive description: name: connectivity_plus_platform_interface - sha256: b6a56efe1e6675be240de39107281d4034b64ac23438026355b4234042a35adb + sha256: "42657c1715d48b167930d5f34d00222ac100475f73d10162ddf43e714932f204" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.1" convert: dependency: transitive description: @@ -237,18 +237,18 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: eead12d1a1ed83d8283ab4c2f3fca23ac4082f29f25f29dff0f758f57d06ec91 + sha256: "93429694c9253d2871b3af80cf11b3cbb5c65660d402ed7bf69854ce4a089f82" url: "https://pub.dev" source: hosted - version: "10.1.0" + version: "10.1.1" device_info_plus_platform_interface: dependency: transitive description: name: device_info_plus_platform_interface - sha256: d3b01d5868b50ae571cd1dc6e502fc94d956b665756180f7b16ead09e836fd64 + sha256: "282d3cf731045a2feb66abfe61bbc40870ae50a3ed10a4d3d217556c35c8c2ba" url: "https://pub.dev" source: hosted - version: "7.0.0" + version: "7.0.1" dio: dependency: "direct main" description: @@ -474,10 +474,10 @@ packages: dependency: transitive description: name: geolocator_android - sha256: "00c7177a95823dd3ee35ef42fd8666cd27d219ae14cea472ac76a21dff43000b" + sha256: "7aefc530db47d90d0580b552df3242440a10fe60814496a979aa67aa98b1fd47" url: "https://pub.dev" source: hosted - version: "4.6.0" + version: "4.6.1" geolocator_apple: dependency: transitive description: @@ -770,18 +770,18 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: b93d8b4d624b4ea19b0a5a208b2d6eff06004bc3ce74c06040b120eeadd00ce0 + sha256: "4de6c36df77ffbcef0a5aefe04669d33f2d18397fea228277b852a2d4e58e860" url: "https://pub.dev" source: hosted - version: "8.0.0" + version: "8.0.1" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: f49918f3433a3146047372f9d4f1f847511f2acd5cd030e1f44fe5a50036b70e + sha256: ac1f4a4847f1ade8e6a87d1f39f5d7c67490738642e2542f559ec38c37489a66 url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "3.0.1" path: dependency: transitive description: @@ -802,10 +802,10 @@ packages: dependency: transitive description: name: path_provider_android - sha256: "30c5aa827a6ae95ce2853cdc5fe3971daaac00f6f081c419c013f7f57bff2f5e" + sha256: "490539678396d4c3c0b06efdaab75ae60675c3e0c66f72bc04c2e2c1e0e2abeb" url: "https://pub.dev" source: hosted - version: "2.2.7" + version: "2.2.9" path_provider_foundation: dependency: transitive description: @@ -1063,10 +1063,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "95d8027db36a0e52caf55680f91e33ea6aa12a3ce608c90b06f4e429a21067ac" + sha256: "678979703e10d7862c551c736fe6b9f185261bddf141b46672063b99790bc700" url: "https://pub.dev" source: hosted - version: "6.3.5" + version: "6.3.7" url_launcher_ios: dependency: transitive description: @@ -1183,10 +1183,10 @@ packages: dependency: transitive description: name: win32_registry - sha256: "10589e0d7f4e053f2c61023a31c9ce01146656a70b7b7f0828c0b46d7da2a9bb" + sha256: "723b7f851e5724c55409bb3d5a32b203b3afe8587eaf5dafb93a5fed8ecda0d6" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "1.1.4" workmanager: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 3298ded..3ebee91 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -37,9 +37,9 @@ dependencies: # quick_settings: ^1.0.1 json_annotation: ^4.9.0 flutter_timezone: ^2.1.0 - device_info_plus: ^10.1.0 - package_info_plus: ^8.0.0 - connectivity_plus: ^6.0.3 + device_info_plus: ^10.1.1 + package_info_plus: ^8.0.1 + connectivity_plus: ^6.0.4 freezed_annotation: ^2.4.4 isar_flutter_libs: version: ^3.1.7 From 2cc70f922132bf581f7ee6063d0b0cf2c069d962 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Fri, 2 Aug 2024 22:52:33 +0300 Subject: [PATCH 06/41] 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: From 8bce420296ac8f70f4f80a09edb8ee1f4f4c7833 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sat, 3 Aug 2024 18:55:26 +0300 Subject: [PATCH 07/41] Fix UI --- lib/app/modules/onboarding.dart | 1 + lib/main.dart | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/app/modules/onboarding.dart b/lib/app/modules/onboarding.dart index 8140584..4cf694b 100644 --- a/lib/app/modules/onboarding.dart +++ b/lib/app/modules/onboarding.dart @@ -38,6 +38,7 @@ class _OnBordingState extends State { @override Widget build(BuildContext context) { return Scaffold( + appBar: AppBar(), body: SafeArea( child: Column( children: [ diff --git a/lib/main.dart b/lib/main.dart index ea9a567..f64b228 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -14,18 +14,18 @@ import 'package:internet_connection_checker_plus/internet_connection_checker_plu import 'package:isar/isar.dart'; import 'package:path_provider/path_provider.dart'; import 'package:rain/app/controller/controller.dart'; +import 'package:rain/app/data/weather.dart'; import 'package:rain/app/modules/geolocation.dart'; import 'package:rain/app/modules/home.dart'; import 'package:rain/app/modules/onboarding.dart'; import 'package:rain/theme/theme.dart'; +import 'package:rain/theme/theme_controller.dart'; +import 'package:rain/translation/translation.dart'; import 'package:rain/utils/device_info.dart'; import 'package:time_machine/time_machine.dart'; import 'package:timezone/data/latest_all.dart' as tz; import 'package:timezone/timezone.dart' as tz; import 'package:workmanager/workmanager.dart'; -import 'app/data/weather.dart'; -import 'theme/theme_controller.dart'; -import 'translation/translation.dart'; late Isar isar; late Settings settings; From 91e1757a2045aad63bc8ca909c68a46cbb828589 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sun, 4 Aug 2024 11:48:25 +0300 Subject: [PATCH 08/41] Replacing SizedBox with Gap --- .../cards/widgets/weather_card_container.dart | 9 +++++---- lib/app/modules/geolocation.dart | 3 ++- lib/app/modules/onboarding.dart | 3 ++- lib/app/modules/settings/view/settings.dart | 17 +++++++++-------- lib/app/widgets/daily/list_daily_card.dart | 7 ++++--- lib/app/widgets/daily/weather_daily.dart | 3 ++- lib/app/widgets/desc/desc.dart | 3 ++- lib/app/widgets/now/weather_now.dart | 11 ++++++----- lib/app/widgets/sun_moon/sunset_sunrise.dart | 9 +++++---- pubspec.lock | 8 ++++++++ pubspec.yaml | 1 + 11 files changed, 46 insertions(+), 28 deletions(-) diff --git a/lib/app/modules/cards/widgets/weather_card_container.dart b/lib/app/modules/cards/widgets/weather_card_container.dart index 921cabd..7c977b4 100644 --- a/lib/app/modules/cards/widgets/weather_card_container.dart +++ b/lib/app/modules/cards/widgets/weather_card_container.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:gap/gap.dart'; import 'package:get/get.dart'; import 'package:rain/app/controller/controller.dart'; import 'package:rain/app/widgets/status/status_weather.dart'; @@ -62,7 +63,7 @@ class _WeatherCardContainerState extends State { fontWeight: FontWeight.w600, ), ), - const SizedBox(width: 7), + const Gap(7), Text( statusWeather.getText(widget.weather[weatherController .getTime(widget.time, widget.timezone)]), @@ -73,7 +74,7 @@ class _WeatherCardContainerState extends State { ), ], ), - const SizedBox(height: 10), + const Gap(10), Text( widget.district.isEmpty ? widget.city @@ -87,7 +88,7 @@ class _WeatherCardContainerState extends State { fontWeight: FontWeight.w500, ), ), - const SizedBox(height: 5), + const Gap(5), StreamBuilder( stream: Stream.periodic(const Duration(seconds: 1)), builder: (context, snapshot) { @@ -103,7 +104,7 @@ class _WeatherCardContainerState extends State { ], ), ), - const SizedBox(width: 5), + const Gap(5), Image.asset( statusWeather.getImageNow( widget.weather[ diff --git a/lib/app/modules/geolocation.dart b/lib/app/modules/geolocation.dart index 8f84fd9..faa20bd 100644 --- a/lib/app/modules/geolocation.dart +++ b/lib/app/modules/geolocation.dart @@ -1,5 +1,6 @@ import 'dart:ui'; import 'package:flutter/material.dart'; +import 'package:gap/gap.dart'; import 'package:geolocator/geolocator.dart'; import 'package:get/get.dart'; import 'package:iconsax/iconsax.dart'; @@ -360,7 +361,7 @@ class _SelectGeolocationState extends State { margin: const EdgeInsets.only( left: 10, right: 10, top: 10), ), - const SizedBox(height: 20), + const Gap(20), ], ), ), diff --git a/lib/app/modules/onboarding.dart b/lib/app/modules/onboarding.dart index 4cf694b..07a2999 100644 --- a/lib/app/modules/onboarding.dart +++ b/lib/app/modules/onboarding.dart @@ -1,3 +1,4 @@ +import 'package:gap/gap.dart'; import 'package:rain/app/data/weather.dart'; import 'package:rain/app/modules/geolocation.dart'; import 'package:rain/app/widgets/button.dart'; @@ -166,7 +167,7 @@ class OnboardContent extends StatelessWidget { style: context.textTheme.titleLarge ?.copyWith(fontWeight: FontWeight.w600), ), - const SizedBox(height: 10), + const Gap(10), SizedBox( width: 300, child: Text( diff --git a/lib/app/modules/settings/view/settings.dart b/lib/app/modules/settings/view/settings.dart index e2a0d25..97641c8 100644 --- a/lib/app/modules/settings/view/settings.dart +++ b/lib/app/modules/settings/view/settings.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_hsvcolor_picker/flutter_hsvcolor_picker.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:gap/gap.dart'; import 'package:geolocator/geolocator.dart'; import 'package:get/get.dart'; import 'package:iconsax/iconsax.dart'; @@ -162,7 +163,7 @@ class _SettingsPageState extends State { setState(() {}); }, ), - const SizedBox(height: 10), + const Gap(10), ], ), ); @@ -451,7 +452,7 @@ class _SettingsPageState extends State { } }, ), - const SizedBox(height: 10), + const Gap(10), ], ), ); @@ -602,7 +603,7 @@ class _SettingsPageState extends State { setState(() {}); }, ), - const SizedBox(height: 10), + const Gap(10), ], ), ); @@ -819,7 +820,7 @@ class _SettingsPageState extends State { ); }, ), - const SizedBox(height: 10), + const Gap(10), ], ), ); @@ -887,7 +888,7 @@ class _SettingsPageState extends State { ); }, ), - const SizedBox(height: 10), + const Gap(10), ], ); }, @@ -938,7 +939,7 @@ class _SettingsPageState extends State { onPressed: () => urlLauncher( 'https://yoomoney.ru/to/4100117672775961'), ), - const SizedBox(height: 10), + const Gap(10), ], ), ); @@ -1002,7 +1003,7 @@ class _SettingsPageState extends State { } }, ), - const SizedBox(height: 10), + const Gap(10), ], ), ); @@ -1064,7 +1065,7 @@ class _SettingsPageState extends State { onTap: () => urlLauncher('https://open-meteo.com/'), ), ), - const SizedBox(height: 10), + const Gap(10), ], ), ); diff --git a/lib/app/widgets/daily/list_daily_card.dart b/lib/app/widgets/daily/list_daily_card.dart index 4b9ecd4..e8c8ef3 100644 --- a/lib/app/widgets/daily/list_daily_card.dart +++ b/lib/app/widgets/daily/list_daily_card.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:gap/gap.dart'; import 'package:get/get.dart'; import 'package:intl/intl.dart'; import 'package:rain/app/widgets/status/status_weather.dart'; @@ -47,7 +48,7 @@ class _ListDailyCardState extends State { fontWeight: FontWeight.w600, ), ), - const SizedBox(height: 5), + const Gap(5), Text( DateFormat.MMMMEEEEd(locale.languageCode) .format(widget.timeDaily), @@ -56,7 +57,7 @@ class _ListDailyCardState extends State { fontWeight: FontWeight.w400, ), ), - const SizedBox(height: 5), + const Gap(5), Text( statusWeather.getText(widget.weathercodeDaily), style: context.textTheme.titleMedium?.copyWith( @@ -67,7 +68,7 @@ class _ListDailyCardState extends State { ], ), ), - const SizedBox(width: 5), + const Gap(5), Image.asset( statusWeather.getImageNowDaily(widget.weathercodeDaily), scale: 6.5, diff --git a/lib/app/widgets/daily/weather_daily.dart b/lib/app/widgets/daily/weather_daily.dart index e809c4b..ed427db 100644 --- a/lib/app/widgets/daily/weather_daily.dart +++ b/lib/app/widgets/daily/weather_daily.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:gap/gap.dart'; import 'package:get/get.dart'; import 'package:intl/intl.dart'; import 'package:rain/app/data/weather.dart'; @@ -80,7 +81,7 @@ class _WeatherDailyState extends State { .getImage7Day(weatherCodeDaily[index]), scale: 3, ), - const SizedBox(width: 5), + const Gap(5), Expanded( child: Text( statusWeather diff --git a/lib/app/widgets/desc/desc.dart b/lib/app/widgets/desc/desc.dart index 5e42975..a2191df 100644 --- a/lib/app/widgets/desc/desc.dart +++ b/lib/app/widgets/desc/desc.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:gap/gap.dart'; import 'package:get/get.dart'; class DescWeather extends StatefulWidget { @@ -38,7 +39,7 @@ class _DescWeatherState extends State { widget.imageName, scale: 20, ), - const SizedBox(height: 5), + const Gap(5), Text( widget.value, style: textTheme.labelLarge, diff --git a/lib/app/widgets/now/weather_now.dart b/lib/app/widgets/now/weather_now.dart index 2f4e039..be9626c 100644 --- a/lib/app/widgets/now/weather_now.dart +++ b/lib/app/widgets/now/weather_now.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_glow/flutter_glow.dart'; +import 'package:gap/gap.dart'; import 'package:get/get.dart'; import 'package:intl/intl.dart'; import 'package:rain/app/widgets/status/status_data.dart'; @@ -43,7 +44,7 @@ class _WeatherNowState extends State { child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - const SizedBox(height: 15), + const Gap(15), Image( image: AssetImage(statusWeather.getImageNow(widget.weather, widget.time, widget.timeDay, widget.timeNight)), @@ -61,7 +62,7 @@ class _WeatherNowState extends State { statusWeather.getText(widget.weather), style: context.textTheme.titleLarge, ), - const SizedBox(height: 5), + const Gap(5), Text( DateFormat.MMMMEEEEd(locale.languageCode).format( DateTime.parse(widget.time), @@ -93,7 +94,7 @@ class _WeatherNowState extends State { color: Colors.grey, ), ), - const SizedBox(height: 5), + const Gap(5), Text( statusWeather.getText(widget.weather), style: context.textTheme.titleLarge @@ -109,7 +110,7 @@ class _WeatherNowState extends State { style: context.textTheme.bodyMedium), ], ), - const SizedBox(height: 30), + const Gap(30), Text( statusData.getDegree(roundDegree ? widget.degree.round() @@ -118,7 +119,7 @@ class _WeatherNowState extends State { fontWeight: FontWeight.w800, ), ), - const SizedBox(height: 5), + const Gap(5), Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ diff --git a/lib/app/widgets/sun_moon/sunset_sunrise.dart b/lib/app/widgets/sun_moon/sunset_sunrise.dart index f5a2112..a8f1ed7 100644 --- a/lib/app/widgets/sun_moon/sunset_sunrise.dart +++ b/lib/app/widgets/sun_moon/sunset_sunrise.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:gap/gap.dart'; import 'package:rain/app/widgets/status/status_data.dart'; class SunsetSunrise extends StatefulWidget { @@ -44,7 +45,7 @@ class _SunsetSunriseState extends State { style: titleSmall, overflow: TextOverflow.ellipsis, ), - const SizedBox(height: 2), + const Gap(2), Text( statusData.getTimeFormat(widget.timeSunrise), style: titleLarge, @@ -52,7 +53,7 @@ class _SunsetSunriseState extends State { ], ), ), - const SizedBox(width: 5), + const Gap(5), Flexible( child: Image.asset( 'assets/images/sunrise.png', @@ -75,7 +76,7 @@ class _SunsetSunriseState extends State { style: titleSmall, overflow: TextOverflow.ellipsis, ), - const SizedBox(height: 2), + const Gap(2), Text( statusData.getTimeFormat(widget.timeSunset), style: titleLarge, @@ -83,7 +84,7 @@ class _SunsetSunriseState extends State { ], ), ), - const SizedBox(width: 5), + const Gap(5), Flexible( child: Image.asset( 'assets/images/sunset.png', diff --git a/pubspec.lock b/pubspec.lock index 3184876..074cfcd 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -430,6 +430,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.0" + gap: + dependency: "direct main" + description: + name: gap + sha256: f19387d4e32f849394758b91377f9153a1b41d79513ef7668c088c77dbc6955d + url: "https://pub.dev" + source: hosted + version: "3.0.1" geocoding: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index b709a74..91e31cd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,6 +14,7 @@ dependencies: flutter_localizations: sdk: flutter get: ^4.6.6 + gap: ^3.0.1 dio: ^5.5.0+1 intl: ^0.19.0 isar: From b2e843c5d9a8fbfa115b381358c4870696f40880 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Fri, 9 Aug 2024 22:19:37 +0300 Subject: [PATCH 09/41] Update dependencies --- lib/app/api/weather_api.freezed.dart | 67 ++++++++++++++++---- lib/app/controller/controller.dart | 31 +++++---- pubspec.lock | 95 ++++++++++++++++------------ pubspec.yaml | 16 ++--- 4 files changed, 132 insertions(+), 77 deletions(-) diff --git a/lib/app/api/weather_api.freezed.dart b/lib/app/api/weather_api.freezed.dart index 048a787..543cb8e 100644 --- a/lib/app/api/weather_api.freezed.dart +++ b/lib/app/api/weather_api.freezed.dart @@ -24,8 +24,12 @@ mixin _$WeatherDataApi { Daily get daily => throw _privateConstructorUsedError; String get timezone => throw _privateConstructorUsedError; + /// Serializes this WeatherDataApi to a JSON map. Map toJson() => throw _privateConstructorUsedError; - @JsonKey(ignore: true) + + /// Create a copy of WeatherDataApi + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) $WeatherDataApiCopyWith get copyWith => throw _privateConstructorUsedError; } @@ -52,6 +56,8 @@ class _$WeatherDataApiCopyWithImpl<$Res, $Val extends WeatherDataApi> // ignore: unused_field final $Res Function($Val) _then; + /// Create a copy of WeatherDataApi + /// with the given fields replaced by the non-null parameter values. @pragma('vm:prefer-inline') @override $Res call({ @@ -75,6 +81,8 @@ class _$WeatherDataApiCopyWithImpl<$Res, $Val extends WeatherDataApi> ) as $Val); } + /// Create a copy of WeatherDataApi + /// with the given fields replaced by the non-null parameter values. @override @pragma('vm:prefer-inline') $HourlyCopyWith<$Res> get hourly { @@ -83,6 +91,8 @@ class _$WeatherDataApiCopyWithImpl<$Res, $Val extends WeatherDataApi> }); } + /// Create a copy of WeatherDataApi + /// with the given fields replaced by the non-null parameter values. @override @pragma('vm:prefer-inline') $DailyCopyWith<$Res> get daily { @@ -116,6 +126,8 @@ class __$$WeatherDataApiImplCopyWithImpl<$Res> _$WeatherDataApiImpl _value, $Res Function(_$WeatherDataApiImpl) _then) : super(_value, _then); + /// Create a copy of WeatherDataApi + /// with the given fields replaced by the non-null parameter values. @pragma('vm:prefer-inline') @override $Res call({ @@ -172,11 +184,13 @@ class _$WeatherDataApiImpl implements _WeatherDataApi { other.timezone == timezone)); } - @JsonKey(ignore: true) + @JsonKey(includeFromJson: false, includeToJson: false) @override int get hashCode => Object.hash(runtimeType, hourly, daily, timezone); - @JsonKey(ignore: true) + /// Create a copy of WeatherDataApi + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) @override @pragma('vm:prefer-inline') _$$WeatherDataApiImplCopyWith<_$WeatherDataApiImpl> get copyWith => @@ -206,8 +220,11 @@ abstract class _WeatherDataApi implements WeatherDataApi { Daily get daily; @override String get timezone; + + /// Create a copy of WeatherDataApi + /// with the given fields replaced by the non-null parameter values. @override - @JsonKey(ignore: true) + @JsonKey(includeFromJson: false, includeToJson: false) _$$WeatherDataApiImplCopyWith<_$WeatherDataApiImpl> get copyWith => throw _privateConstructorUsedError; } @@ -251,8 +268,12 @@ mixin _$Hourly { @JsonKey(name: 'shortwave_radiation') List? get shortwaveRadiation => throw _privateConstructorUsedError; + /// Serializes this Hourly to a JSON map. Map toJson() => throw _privateConstructorUsedError; - @JsonKey(ignore: true) + + /// Create a copy of Hourly + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) $HourlyCopyWith get copyWith => throw _privateConstructorUsedError; } @@ -293,6 +314,8 @@ class _$HourlyCopyWithImpl<$Res, $Val extends Hourly> // ignore: unused_field final $Res Function($Val) _then; + /// Create a copy of Hourly + /// with the given fields replaced by the non-null parameter values. @pragma('vm:prefer-inline') @override $Res call({ @@ -429,6 +452,8 @@ class __$$HourlyImplCopyWithImpl<$Res> _$HourlyImpl _value, $Res Function(_$HourlyImpl) _then) : super(_value, _then); + /// Create a copy of Hourly + /// with the given fields replaced by the non-null parameter values. @pragma('vm:prefer-inline') @override $Res call({ @@ -820,7 +845,7 @@ class _$HourlyImpl implements _Hourly { .equals(other._shortwaveRadiation, _shortwaveRadiation)); } - @JsonKey(ignore: true) + @JsonKey(includeFromJson: false, includeToJson: false) @override int get hashCode => Object.hash( runtimeType, @@ -843,7 +868,9 @@ class _$HourlyImpl implements _Hourly { const DeepCollectionEquality().hash(_precipitationProbability), const DeepCollectionEquality().hash(_shortwaveRadiation)); - @JsonKey(ignore: true) + /// Create a copy of Hourly + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) @override @pragma('vm:prefer-inline') _$$HourlyImplCopyWith<_$HourlyImpl> get copyWith => @@ -933,8 +960,11 @@ abstract class _Hourly implements Hourly { @override @JsonKey(name: 'shortwave_radiation') List? get shortwaveRadiation; + + /// Create a copy of Hourly + /// with the given fields replaced by the non-null parameter values. @override - @JsonKey(ignore: true) + @JsonKey(includeFromJson: false, includeToJson: false) _$$HourlyImplCopyWith<_$HourlyImpl> get copyWith => throw _privateConstructorUsedError; } @@ -978,8 +1008,12 @@ mixin _$Daily { List? get windDirection10MDominant => throw _privateConstructorUsedError; + /// Serializes this Daily to a JSON map. Map toJson() => throw _privateConstructorUsedError; - @JsonKey(ignore: true) + + /// Create a copy of Daily + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) $DailyCopyWith get copyWith => throw _privateConstructorUsedError; } @@ -1020,6 +1054,8 @@ class _$DailyCopyWithImpl<$Res, $Val extends Daily> // ignore: unused_field final $Res Function($Val) _then; + /// Create a copy of Daily + /// with the given fields replaced by the non-null parameter values. @pragma('vm:prefer-inline') @override $Res call({ @@ -1141,6 +1177,8 @@ class __$$DailyImplCopyWithImpl<$Res> _$DailyImpl _value, $Res Function(_$DailyImpl) _then) : super(_value, _then); + /// Create a copy of Daily + /// with the given fields replaced by the non-null parameter values. @pragma('vm:prefer-inline') @override $Res call({ @@ -1478,7 +1516,7 @@ class _$DailyImpl implements _Daily { other._windDirection10MDominant, _windDirection10MDominant)); } - @JsonKey(ignore: true) + @JsonKey(includeFromJson: false, includeToJson: false) @override int get hashCode => Object.hash( runtimeType, @@ -1498,7 +1536,9 @@ class _$DailyImpl implements _Daily { const DeepCollectionEquality().hash(_rainSum), const DeepCollectionEquality().hash(_windDirection10MDominant)); - @JsonKey(ignore: true) + /// Create a copy of Daily + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) @override @pragma('vm:prefer-inline') _$$DailyImplCopyWith<_$DailyImpl> get copyWith => @@ -1581,8 +1621,11 @@ abstract class _Daily implements Daily { @override @JsonKey(name: 'winddirection_10m_dominant') List? get windDirection10MDominant; + + /// Create a copy of Daily + /// with the given fields replaced by the non-null parameter values. @override - @JsonKey(ignore: true) + @JsonKey(includeFromJson: false, includeToJson: false) _$$DailyImplCopyWith<_$DailyImpl> get copyWith => throw _privateConstructorUsedError; } diff --git a/lib/app/controller/controller.dart b/lib/app/controller/controller.dart index 11e145e..eac9623 100644 --- a/lib/app/controller/controller.dart +++ b/lib/app/controller/controller.dart @@ -72,8 +72,7 @@ class WeatherController extends GetxController { return Future.error( 'Location permissions are permanently denied, we cannot request permissions.'); } - return await Geolocator.getCurrentPosition( - desiredAccuracy: LocationAccuracy.high); + return await Geolocator.getCurrentPosition(); } Future setLocation() async { @@ -483,20 +482,20 @@ class WeatherController extends GetxController { if (notificationTime.isAfter(now) && notificationTime.hour >= startHour && notificationTime.hour <= endHour) { - for (var j = 0; j < mainWeatherCache.timeDaily!.length; j++) { - if (mainWeatherCache.timeDaily![j].day == notificationTime.day) { - NotificationShow().showNotification( - UniqueKey().hashCode, - '$city: ${mainWeatherCache.temperature2M![i]}°', - '${StatusWeather().getText(mainWeatherCache.weathercode![i])} · ${StatusData().getTimeFormat(mainWeatherCache.time![i])}', - notificationTime, - StatusWeather().getImageNotification( - mainWeatherCache.weathercode![i], - mainWeatherCache.time![i], - mainWeatherCache.sunrise![j], - mainWeatherCache.sunset![j], - ), - ); + for (var j = 0; j < mainWeatherCache.timeDaily!.length; j++) { + if (mainWeatherCache.timeDaily![j].day == notificationTime.day) { + NotificationShow().showNotification( + UniqueKey().hashCode, + '$city: ${mainWeatherCache.temperature2M![i]}°', + '${StatusWeather().getText(mainWeatherCache.weathercode![i])} · ${StatusData().getTimeFormat(mainWeatherCache.time![i])}', + notificationTime, + StatusWeather().getImageNotification( + mainWeatherCache.weathercode![i], + mainWeatherCache.time![i], + mainWeatherCache.sunrise![j], + mainWeatherCache.sunset![j], + ), + ); } } } diff --git a/pubspec.lock b/pubspec.lock index 074cfcd..12eab34 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,18 +5,23 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7" + sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 url: "https://pub.dev" source: hosted - version: "67.0.0" + version: "72.0.0" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.3.2" analyzer: dependency: transitive description: name: analyzer - sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d" + sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 url: "https://pub.dev" source: hosted - version: "6.4.1" + version: "6.7.0" ansicolor: dependency: transitive description: @@ -93,18 +98,18 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: "644dc98a0f179b872f612d3eb627924b578897c629788e858157fa5e704ca0c7" + sha256: dd09dd4e2b078992f42aac7f1a622f01882a8492fef08486b27ddde929c19f04 url: "https://pub.dev" source: hosted - version: "2.4.11" + version: "2.4.12" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: e3c79f69a64bdfcd8a776a3c28db4eb6e3fb5356d013ae5eb2e52007706d5dbe + sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 url: "https://pub.dev" source: hosted - version: "7.3.1" + version: "7.3.2" built_collection: dependency: transitive description: @@ -173,10 +178,10 @@ packages: dependency: "direct main" description: name: connectivity_plus - sha256: "3e7d1d9dbae40ae82cbe6c23c518f0c4ffe32764ee9749b9a99d32cbac8734f6" + sha256: "2056db5241f96cdc0126bd94459fc4cdc13876753768fc7a31c425e50a7177d0" url: "https://pub.dev" source: hosted - version: "6.0.4" + version: "6.0.5" connectivity_plus_platform_interface: dependency: transitive description: @@ -237,10 +242,10 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: "93429694c9253d2871b3af80cf11b3cbb5c65660d402ed7bf69854ce4a089f82" + sha256: a7fd703482b391a87d60b6061d04dfdeab07826b96f9abd8f5ed98068acc0074 url: "https://pub.dev" source: hosted - version: "10.1.1" + version: "10.1.2" device_info_plus_platform_interface: dependency: transitive description: @@ -355,10 +360,10 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: dd6676d8c2926537eccdf9f72128bbb2a9d0814689527b17f92c248ff192eaf3 + sha256: c500d5d9e7e553f06b61877ca6b9c8b92c570a4c8db371038702e8ce57f8a50f url: "https://pub.dev" source: hosted - version: "17.2.1+2" + version: "17.2.2" flutter_local_notifications_linux: dependency: transitive description: @@ -410,10 +415,10 @@ packages: dependency: "direct dev" description: name: freezed - sha256: a434911f643466d78462625df76fd9eb13e57348ff43fe1f77bbe909522c67a1 + sha256: "44c19278dd9d89292cf46e97dc0c1e52ce03275f40a97c5a348e802a924bf40e" url: "https://pub.dev" source: hosted - version: "2.5.2" + version: "2.5.7" freezed_annotation: dependency: "direct main" description: @@ -474,10 +479,10 @@ packages: dependency: "direct main" description: name: geolocator - sha256: "149876cc5207a0f5daf4fdd3bfcf0a0f27258b3fe95108fa084f527ad0568f1b" + sha256: "0ec58b731776bc43097fcf751f79681b6a8f6d3bc737c94779fe9f1ad73c1a81" url: "https://pub.dev" source: hosted - version: "12.0.0" + version: "13.0.1" geolocator_android: dependency: transitive description: @@ -506,10 +511,10 @@ packages: dependency: transitive description: name: geolocator_web - sha256: "7a22f400d831f924a89d931ba126a10e6b8b437f31e6b9311320435f3e1571bd" + sha256: "2ed69328e05cd94e7eb48bb0535f5fc0c0c44d1c4fa1e9737267484d05c29b5e" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "4.1.1" geolocator_windows: dependency: transitive description: @@ -690,18 +695,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.4" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: @@ -726,6 +731,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + macros: + dependency: transitive + description: + name: macros + sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" + url: "https://pub.dev" + source: hosted + version: "0.1.2-main.4" matcher: dependency: transitive description: @@ -738,18 +751,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.15.0" mime: dependency: transitive description: @@ -778,10 +791,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "4de6c36df77ffbcef0a5aefe04669d33f2d18397fea228277b852a2d4e58e860" + sha256: a75164ade98cb7d24cfd0a13c6408927c6b217fa60dee5a7ff5c116a58f28918 url: "https://pub.dev" source: hosted - version: "8.0.1" + version: "8.0.2" package_info_plus_platform_interface: dependency: transitive description: @@ -1007,10 +1020,10 @@ packages: dependency: transitive description: name: test_api - sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.7.0" + version: "0.7.2" time: dependency: transitive description: @@ -1087,10 +1100,10 @@ packages: dependency: transitive description: name: url_launcher_linux - sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811 + sha256: e2b9622b4007f97f504cd64c0128309dfb978ae66adbe944125ed9e1750f06af url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.2.0" url_launcher_macos: dependency: transitive description: @@ -1111,10 +1124,10 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: a36e2d7981122fa185006b216eb6b5b97ede3f9a54b7a511bc966971ab98d049 + sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.3.3" url_launcher_windows: dependency: transitive description: @@ -1143,10 +1156,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc url: "https://pub.dev" source: hosted - version: "14.2.1" + version: "14.2.4" watcher: dependency: transitive description: @@ -1159,10 +1172,10 @@ packages: dependency: transitive description: name: web - sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" + sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "1.0.0" web_socket: dependency: transitive description: @@ -1236,5 +1249,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.4.4 <4.0.0" + dart: ">=3.5.0 <4.0.0" flutter: ">=3.22.0" diff --git a/pubspec.yaml b/pubspec.yaml index 91e31cd..e911667 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -6,7 +6,7 @@ publish_to: "none" version: 1.3.4+37 environment: - sdk: ">=3.4.4 <4.0.0" + sdk: ">=3.5.0 <4.0.0" dependencies: flutter: @@ -24,7 +24,7 @@ dependencies: iconsax: ^0.0.8 timezone: ^0.9.4 geocoding: ^3.0.0 - geolocator: ^12.0.0 + geolocator: ^13.0.1 home_widget: ^0.6.0 workmanager: ^0.5.2 google_fonts: ^6.2.1 @@ -38,9 +38,9 @@ dependencies: # quick_settings: ^1.0.1 json_annotation: ^4.9.0 flutter_timezone: ^2.1.0 - device_info_plus: ^10.1.1 - package_info_plus: ^8.0.1 - connectivity_plus: ^6.0.4 + device_info_plus: ^10.1.2 + package_info_plus: ^8.0.2 + connectivity_plus: ^6.0.5 freezed_annotation: ^2.4.4 isar_flutter_libs: version: ^3.1.7 @@ -50,7 +50,7 @@ dependencies: # font_awesome_flutter: ^10.7.0 flutter_hsvcolor_picker: ^1.5.1 scrollable_positioned_list: ^0.3.8 - flutter_local_notifications: ^17.2.1+2 + flutter_local_notifications: ^17.2.2 internet_connection_checker_plus: ^2.5.1 # Uncomment this for publishing FLOSS variant @@ -64,8 +64,8 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - freezed: ^2.5.2 - build_runner: ^2.4.11 + freezed: ^2.5.7 + build_runner: ^2.4.12 flutter_lints: ^4.0.0 isar_generator: version: ^3.1.7 From 6c7da7b28dbb96ac6dd05e289ab17c9d124b6905 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Mon, 12 Aug 2024 21:03:35 +0300 Subject: [PATCH 10/41] Add map --- assets/images/github.png | Bin 3541 -> 0 bytes .../modules/cards/view/info_weather_card.dart | 4 +- .../modules/cards/view/list_weather_card.dart | 6 +- .../cards/widgets/create_card_weather.dart | 12 +- .../cards/widgets/weather_card_list.dart | 4 +- lib/app/modules/geolocation.dart | 19 +- lib/app/modules/home.dart | 53 +++--- lib/app/modules/map/view/map.dart | 95 ++++++++++ lib/app/modules/settings/view/settings.dart | 75 ++++---- .../settings/widgets/setting_card.dart | 8 +- lib/app/widgets/daily/info_daily_card.dart | 4 +- lib/app/widgets/daily/weather_more.dart | 4 +- lib/app/widgets/now/weather_now.dart | 14 +- lib/translation/ru_ru.dart | 1 + pubspec.lock | 177 +++++++++++++++--- pubspec.yaml | 33 ++-- 16 files changed, 380 insertions(+), 129 deletions(-) delete mode 100644 assets/images/github.png create mode 100644 lib/app/modules/map/view/map.dart diff --git a/assets/images/github.png b/assets/images/github.png deleted file mode 100644 index bfc5e7186a4731ed79668cddec698bdc7e2b71b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3541 zcmZ`+X*iVq+y346%rFcxmXR&{7L6@Cxyha_OW9&>S63l z3yP@3*cD}vc#!#fkN4wyyw`{GJU?9Ld7K}wE7jW4n3b82834d)YGPmm0DL52fJPk= z!-c`YBNDeZw=p-Q>U(#r_pV;SzTkX zOwJq=77Viy3lqP;x482sMAJYnvAJ>N(bCPI>--Bv`8(}#8TEDle4u4}#(0)COFTuA zn49^7^q*dMBuTk0_>Shs$vBxp<%;#I2Va6L{o_HWton+@zwJ;w)^c+w=a$H@l`W7P zE+QNk5-y{-PwxVGYU9K_tergXdYjF4BTw`GKxM92Lz3z>zp(<;xR?2yL_ zatM}VBMab7A|n{FP!}G#3=t z*esq#ur|SbB*BvV?*X0?g+;_cbv@QVezHu_S-^3WSKT0>N>UT`_BIMf_T(<`P5UK$@JxA&SEIHF>6)$B0=C9n7&h79Xc{J$elvdv@;JQKGczW9;hi5_?H#M zPD)-k&aUIuYfa;17g>eMUM*05wx)<&B}sT=Ti6icAeVY_8>?-!8tXS znSVVP$Ee{W#if6&j3qv>E9DO`ny{# zmln^i{FB=xG{+MtTsUQo*|~DdZ4BQ`NoFaIp=grq zo)}6#B5eVVk)Q!f1uOVCn$*o6Bj6x{KF*}6!W+zV#sCP7Gc0Z>T*$4_O=5a*C-;K0ms}r4jOYzze`Sm;o^IFnkRh%ph#xN#*xAW;uUX(GMS)<@M`)m;5cRINqVC%O%My+^J_pyoLMnf}2<^ z(H8I*ZPwOtUh)uxw-18X5DunTDV1)b0kx6@a|^j)ZkEu^F?O9Y^{@rnu2Vwk0EQY! zX<;Ox8HU|SN%RbZc^y+8C3%+j`Z*7#KorN?JP*xZF$_G}7ZzIUG+w#c$<)ehHIhli z@BYgfCe}(WCD9Y9n%W4C;$5&W94^#7RoI}l%16k|? zCaD>*h@F*Jd6OILznn%_Vk%hCyZtz7k? ztZYHFr}dMUqj?S>9}Iy6EcMbTBI;g2Qd~-V1;TssMif}xg?aB^rdIqsnm?}K$=RT| z>Ui@%-IJQF9={YgJd(4qzFoU+)VX!r^vA>nh0|bTCy%AIo)hzh#&VL5KeU`>Iv~gf zNzIAqWIY(M_1%q1RL2JuEx=KCix^r9m_}f2ri&Ffj;fe4;)%x?$48Ub6C>GH_5U){ z93Ta+)TcPxGiD6MJQcOd&Ulxf|{b0ZUVyOD{)m)QRjA%>mnyP?Su|YLrY* zRHXimf#Wu}FPu7o8#4S2rk$-Zigg1x1F%pjTqRI<2MZ)GC6d`4AUkqsaDB<@rN=f zLYbQ8*RGr;%ZTvazqvTL5i->>GrCT4Z>` zlx}-w)y>6arcthD9G$q-e4%dLf{b|_{E{w-8nr;e$A6YI zH@6_KScxjkSy|vojdOztiS4_R_f1wf7sKDq@A934BE?&!$@XUU;l9Z3r7k-w-d{Ex zd~m1^UO`Gm{cFs_&Nffb&iimRg)Eaj#cp!i0MU<6X%oOEWl5HK&S?HngDX&=LvEx2 zaEg8sp-N14yy>;-jd@=RLUWQne4QC$DN%{5Zc#q-{1;b?7PKUOEO{%^O+09QxVy0$ z>;j*T$Dz?78{fXq9bCD*^bYNiWiXX>Zp8)^d4*J-BTEeSWd6b`h?J{4p=mZ8ug#J{ zsW^|?nj4uc9y-whm{KKwI+Ha9FLV8tC0o6Jv1$+GMK-EF@*rn16uWq@OA!1ST`(<5 zvAQbO`a>4J-zd`a$ABW^&m1sjjE*jT>&|su9zpVZ0#~uM&i>@h7pv;hnR zv>0I!vz72b&y4>Lr|R@5Q~s2pjF4JDTWNlihP%iN_8_U!S5M!$TiW;Xm8U8H+-bC* zn#t<*sB@4br2jvp7i40zRn1L_g!;Tr4_ARc9F0fmp`a`Ur}QvzMN8>ntON9W(8u*d zsM5m+jmAcy$oG+z^GG%y|5xlu8>0w)t+X+rLDFHd$q)WZ81C|Aqlq$#-2Q%B|rwCkZ22=`eEndE^o1Q@TMz$mCPy6WOd>mw8v^++ztn84(DE6k*t zBI*%yF`GpdWQEyP=IyhhOHo2OUltof8I7HS+lD~QpB8QjR8;-g-{5KkFMtJ%wPyn? zEKg~7gtB;$%(u+sS711kiCh3KZ^K#@CgkO0BXdX|hgR?w-8EfAD-1Cfl^1|Aaf%e; z3bv&_ha5g1!dS;Xt6nOqK)_kwS!MfElS>mP;} zr=bV7(wc9pnW?ZNH+84$X>`4NxUA*zSwd56V6Lwm`E%6v{pR?VKsLKn;2ll>-rq9w lo*{JicfXo$Zu?vZBoQ2TJ$lom{^;)lriPXVHTtCZ{{oJUA#4Bu diff --git a/lib/app/modules/cards/view/info_weather_card.dart b/lib/app/modules/cards/view/info_weather_card.dart index 0f40622..8079045 100644 --- a/lib/app/modules/cards/view/info_weather_card.dart +++ b/lib/app/modules/cards/view/info_weather_card.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; -import 'package:iconsax/iconsax.dart'; +import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:rain/app/controller/controller.dart'; import 'package:rain/app/data/weather.dart'; import 'package:rain/app/widgets/daily/weather_daily.dart'; @@ -67,7 +67,7 @@ class _InfoWeatherCardState extends State { leading: IconButton( onPressed: () => Get.back(), icon: const Icon( - Iconsax.arrow_left_1, + IconsaxPlusLinear.arrow_left_3, size: 20, ), ), diff --git a/lib/app/modules/cards/view/list_weather_card.dart b/lib/app/modules/cards/view/list_weather_card.dart index 73948b1..76b6cb3 100644 --- a/lib/app/modules/cards/view/list_weather_card.dart +++ b/lib/app/modules/cards/view/list_weather_card.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; -import 'package:iconsax/iconsax.dart'; +import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:rain/app/controller/controller.dart'; import 'package:rain/app/modules/cards/widgets/weather_card_list.dart'; import 'package:rain/app/widgets/text_form.dart'; @@ -66,7 +66,7 @@ class _ListWeatherCardState extends State { labelText: 'search'.tr, type: TextInputType.text, icon: const Icon( - Iconsax.search_normal_1, + IconsaxPlusLinear.search_normal_1, size: 20, ), controller: searchTasks, @@ -80,7 +80,7 @@ class _ListWeatherCardState extends State { applyFilter(''); }, icon: const Icon( - Iconsax.close_circle, + IconsaxPlusLinear.close_circle, color: Colors.grey, size: 20, ), diff --git a/lib/app/modules/cards/widgets/create_card_weather.dart b/lib/app/modules/cards/widgets/create_card_weather.dart index 435c020..752dd35 100644 --- a/lib/app/modules/cards/widgets/create_card_weather.dart +++ b/lib/app/modules/cards/widgets/create_card_weather.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; -import 'package:iconsax/iconsax.dart'; +import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:rain/app/api/api.dart'; import 'package:rain/app/api/city_api.dart'; import 'package:rain/app/controller/controller.dart'; @@ -120,7 +120,7 @@ class _CreateWeatherCardState extends State elevation: kTextFieldElevation, labelText: 'search'.tr, type: TextInputType.text, - icon: const Icon(Iconsax.global_search), + icon: const Icon(IconsaxPlusLinear.global_search), controller: _controller, margin: const EdgeInsets.only( left: 10, right: 10, top: 10), @@ -176,7 +176,7 @@ class _CreateWeatherCardState extends State controller: _controllerLat, labelText: 'lat'.tr, type: TextInputType.number, - icon: const Icon(Iconsax.location), + icon: const Icon(IconsaxPlusLinear.location), onChanged: (value) => setState(() {}), margin: const EdgeInsets.only(left: 10, right: 10, top: 10), @@ -199,7 +199,7 @@ class _CreateWeatherCardState extends State controller: _controllerLon, labelText: 'lon'.tr, type: TextInputType.number, - icon: const Icon(Iconsax.location), + icon: const Icon(IconsaxPlusLinear.location), onChanged: (value) => setState(() {}), margin: const EdgeInsets.only(left: 10, right: 10, top: 10), @@ -222,7 +222,7 @@ class _CreateWeatherCardState extends State controller: _controllerCity, labelText: 'city'.tr, type: TextInputType.name, - icon: const Icon(Icons.location_city_rounded), + icon: const Icon(IconsaxPlusLinear.building_3), onChanged: (value) => setState(() {}), margin: const EdgeInsets.only(left: 10, right: 10, top: 10), @@ -238,7 +238,7 @@ class _CreateWeatherCardState extends State controller: _controllerDistrict, labelText: 'district'.tr, type: TextInputType.streetAddress, - icon: const Icon(Iconsax.global), + icon: const Icon(IconsaxPlusLinear.global), onChanged: (value) => setState(() {}), margin: const EdgeInsets.only(left: 10, right: 10, top: 10), diff --git a/lib/app/modules/cards/widgets/weather_card_list.dart b/lib/app/modules/cards/widgets/weather_card_list.dart index aa3a5ec..a0e0b88 100644 --- a/lib/app/modules/cards/widgets/weather_card_list.dart +++ b/lib/app/modules/cards/widgets/weather_card_list.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; -import 'package:iconsax/iconsax.dart'; +import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:rain/app/controller/controller.dart'; import 'package:rain/app/modules/cards/view/info_weather_card.dart'; import 'package:rain/app/modules/cards/widgets/weather_card_container.dart'; @@ -43,7 +43,7 @@ class _WeatherCardListState extends State { child: const Padding( padding: EdgeInsets.only(right: 15), child: Icon( - Iconsax.trush_square, + IconsaxPlusLinear.trash_square, color: Colors.red, ), ), diff --git a/lib/app/modules/geolocation.dart b/lib/app/modules/geolocation.dart index faa20bd..82e6c3a 100644 --- a/lib/app/modules/geolocation.dart +++ b/lib/app/modules/geolocation.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; import 'package:geolocator/geolocator.dart'; import 'package:get/get.dart'; -import 'package:iconsax/iconsax.dart'; +import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:rain/app/api/api.dart'; import 'package:rain/app/api/city_api.dart'; import 'package:rain/app/controller/controller.dart'; @@ -75,7 +75,7 @@ class _SelectGeolocationState extends State { Get.back(); }, icon: const Icon( - Iconsax.arrow_left_1, + IconsaxPlusLinear.arrow_left_3, size: 20, ), splashColor: Colors.transparent, @@ -132,8 +132,8 @@ class _SelectGeolocationState extends State { elevation: kTextFieldElevation, labelText: 'search'.tr, type: TextInputType.text, - icon: const Icon( - Iconsax.global_search), + icon: const Icon(IconsaxPlusLinear + .global_search), controller: _controller, margin: const EdgeInsets.only( left: 10, right: 10, top: 10), @@ -276,7 +276,7 @@ class _SelectGeolocationState extends State { setState(() => isLoading = false); }, icon: const Icon( - Iconsax.location, + IconsaxPlusLinear.location, ), ), ), @@ -288,7 +288,7 @@ class _SelectGeolocationState extends State { controller: _controllerLat, labelText: 'lat'.tr, type: TextInputType.number, - icon: const Icon(Iconsax.location), + icon: const Icon(IconsaxPlusLinear.location), margin: const EdgeInsets.only( left: 10, right: 10, @@ -315,7 +315,7 @@ class _SelectGeolocationState extends State { controller: _controllerLon, labelText: 'lon'.tr, type: TextInputType.number, - icon: const Icon(Iconsax.location), + icon: const Icon(IconsaxPlusLinear.location), margin: const EdgeInsets.only( left: 10, right: 10, @@ -342,7 +342,8 @@ class _SelectGeolocationState extends State { controller: _controllerCity, labelText: 'city'.tr, type: TextInputType.name, - icon: const Icon(Icons.location_city_rounded), + icon: + const Icon(IconsaxPlusLinear.building_3), margin: const EdgeInsets.only( left: 10, right: 10, top: 10), validator: (value) { @@ -357,7 +358,7 @@ class _SelectGeolocationState extends State { controller: _controllerDistrict, labelText: 'district'.tr, type: TextInputType.streetAddress, - icon: const Icon(Iconsax.global), + icon: const Icon(IconsaxPlusLinear.global), margin: const EdgeInsets.only( left: 10, right: 10, top: 10), ), diff --git a/lib/app/modules/home.dart b/lib/app/modules/home.dart index b18d4b1..2d97edc 100644 --- a/lib/app/modules/home.dart +++ b/lib/app/modules/home.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; -import 'package:iconsax/iconsax.dart'; +import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:isar/isar.dart'; import 'package:rain/app/api/api.dart'; import 'package:rain/app/api/city_api.dart'; @@ -10,6 +10,7 @@ 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_main.dart'; +import 'package:rain/app/modules/map/view/map.dart'; import 'package:rain/app/modules/settings/view/settings.dart'; import 'package:rain/app/services/utils.dart'; import 'package:rain/main.dart'; @@ -32,6 +33,7 @@ class _HomePageState extends State with TickerProviderStateMixin { final pages = [ const WeatherPage(), const ListWeatherCard(), + const MapWeather(), const SettingsPage(), ]; @@ -73,6 +75,11 @@ class _HomePageState extends State with TickerProviderStateMixin { final textTheme = context.textTheme; final labelLarge = textTheme.labelLarge; + final textStyle = textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w600, + fontSize: 18, + ); + return DefaultTabController( length: pages.length, child: ScaffoldMessenger( @@ -88,7 +95,7 @@ class _HomePageState extends State with TickerProviderStateMixin { transition: Transition.downToUp); }, icon: const Icon( - Iconsax.global_search, + IconsaxPlusLinear.global_search, size: 18, ), ), @@ -184,26 +191,21 @@ class _HomePageState extends State with TickerProviderStateMixin { .isNotEmpty ? 'loading'.tr : 'searchCity'.tr, - style: textTheme.titleMedium?.copyWith( - fontWeight: FontWeight.w600, - fontSize: 18, - ), + style: textStyle, ); }, ), 1 => Text( 'cities'.tr, - style: textTheme.titleMedium?.copyWith( - fontWeight: FontWeight.w600, - fontSize: 18, - ), + style: textStyle, ), 2 => Text( + 'map'.tr, + style: textStyle, + ), + 3 => Text( 'settings_full'.tr, - style: textTheme.titleMedium?.copyWith( - fontWeight: FontWeight.w600, - fontSize: 18, - ), + style: textStyle, ), int() => null, }, @@ -221,7 +223,9 @@ class _HomePageState extends State with TickerProviderStateMixin { setState(() {}); }, icon: Icon( - visible ? Icons.close : Iconsax.search_normal_1, + visible + ? IconsaxPlusLinear.close_circle + : IconsaxPlusLinear.search_normal_1, size: 18, ), ) @@ -240,18 +244,23 @@ class _HomePageState extends State with TickerProviderStateMixin { selectedIndex: tabIndex, destinations: [ NavigationDestination( - icon: const Icon(Iconsax.cloud_sunny), - selectedIcon: const Icon(Iconsax.cloud_sunny5), + icon: const Icon(IconsaxPlusLinear.cloud_sunny), + selectedIcon: const Icon(IconsaxPlusBold.cloud_sunny), label: 'name'.tr, ), NavigationDestination( - icon: const Icon(Iconsax.map_1), - selectedIcon: const Icon(Iconsax.map5), + icon: const Icon(IconsaxPlusLinear.buildings), + selectedIcon: const Icon(IconsaxPlusBold.buildings), label: 'cities'.tr, ), NavigationDestination( - icon: const Icon(Iconsax.category), - selectedIcon: const Icon(Iconsax.category5), + icon: const Icon(IconsaxPlusLinear.map), + selectedIcon: const Icon(IconsaxPlusBold.map), + label: 'map'.tr, + ), + NavigationDestination( + icon: const Icon(IconsaxPlusLinear.category), + selectedIcon: const Icon(IconsaxPlusBold.category), label: 'settings_full'.tr, ), ], @@ -266,7 +275,7 @@ class _HomePageState extends State with TickerProviderStateMixin { const CreateWeatherCard(), ), child: const Icon( - Iconsax.add, + IconsaxPlusLinear.add, ), ) : null, diff --git a/lib/app/modules/map/view/map.dart b/lib/app/modules/map/view/map.dart new file mode 100644 index 0000000..e4d3141 --- /dev/null +++ b/lib/app/modules/map/view/map.dart @@ -0,0 +1,95 @@ +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:flutter_map/flutter_map.dart'; +import 'package:flutter_map_animations/flutter_map_animations.dart'; +import 'package:flutter_map_cache/flutter_map_cache.dart'; +import 'package:get/get.dart'; +import 'package:latlong2/latlong.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:rain/app/controller/controller.dart'; +import 'package:dio_cache_interceptor/dio_cache_interceptor.dart'; +import 'package:dio_cache_interceptor_file_store/dio_cache_interceptor_file_store.dart'; + +class MapWeather extends StatefulWidget { + const MapWeather({super.key}); + + @override + State createState() => _MapWeatherState(); +} + +class _MapWeatherState extends State with TickerProviderStateMixin { + late final _animatedMapController = AnimatedMapController(vsync: this); + final weatherController = Get.put(WeatherController()); + + final Future _cacheStoreFuture = _getCacheStore(); + + static Future _getCacheStore() async { + final dir = await getTemporaryDirectory(); + return FileCacheStore('${dir.path}${Platform.pathSeparator}MapTiles'); + } + + @override + Widget build(BuildContext context) { + final mainLocation = weatherController.location; + bool isDarkMode = Theme.of(context).brightness == Brightness.dark; + + Widget darkModeTilesContainerBuilder( + BuildContext context, + Widget tilesContainer, + ) { + return ColorFiltered( + colorFilter: const ColorFilter.matrix([ + -0.2126, -0.7152, -0.0722, 0, 255, // Red channel + -0.2126, -0.7152, -0.0722, 0, 255, // Green channel + -0.2126, -0.7152, -0.0722, 0, 255, // Blue channel + 0, 0, 0, 1, 0, // Alpha channel + ]), + child: tilesContainer, + ); + } + + Widget openStreetMapTileLayer(CacheStore cacheStore) { + return TileLayer( + urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', + userAgentPackageName: 'com.darkmoonight.rain', + tileProvider: CachedTileProvider( + store: cacheStore, + maxStale: const Duration(days: 30), + )); + } + + return FutureBuilder( + future: _cacheStoreFuture, + builder: (context, snapshot) { + if (snapshot.hasData) { + final cacheStore = snapshot.data!; + return FlutterMap( + mapController: _animatedMapController.mapController, + options: MapOptions( + backgroundColor: context.theme.scaffoldBackgroundColor, + initialCenter: LatLng(mainLocation.lat!, mainLocation.lon!), + initialZoom: 12, + cameraConstraint: CameraConstraint.contain( + bounds: LatLngBounds( + const LatLng(-90, -180), + const LatLng(90, 180), + ), + ), + ), + children: [ + isDarkMode + ? darkModeTilesContainerBuilder( + context, openStreetMapTileLayer(cacheStore)) + : openStreetMapTileLayer(cacheStore) + ], + ); + } + if (snapshot.hasError) { + return Center(child: Text(snapshot.error.toString())); + } + return const Center(child: CircularProgressIndicator()); + }, + ); + } +} diff --git a/lib/app/modules/settings/view/settings.dart b/lib/app/modules/settings/view/settings.dart index 97641c8..cc842f1 100644 --- a/lib/app/modules/settings/view/settings.dart +++ b/lib/app/modules/settings/view/settings.dart @@ -5,8 +5,9 @@ import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:gap/gap.dart'; import 'package:geolocator/geolocator.dart'; import 'package:get/get.dart'; -import 'package:iconsax/iconsax.dart'; +import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:intl/intl.dart'; +import 'package:line_awesome_flutter/line_awesome_flutter.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:rain/app/controller/controller.dart'; import 'package:rain/app/data/weather.dart'; @@ -64,7 +65,7 @@ class _SettingsPageState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ SettingCard( - icon: const Icon(Iconsax.brush_1), + icon: const Icon(IconsaxPlusLinear.brush_1), text: 'appearance'.tr, onPressed: () { showModalBottomSheet( @@ -92,7 +93,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.moon), + icon: const Icon(IconsaxPlusLinear.moon), text: 'theme'.tr, dropdown: true, dropdownName: settings.theme?.tr, @@ -123,7 +124,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.mobile), + icon: const Icon(IconsaxPlusLinear.mobile), text: 'amoledTheme'.tr, switcher: true, value: settings.amoledTheme, @@ -135,7 +136,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.colorfilter), + icon: const Icon(IconsaxPlusLinear.colorfilter), text: 'materialColor'.tr, switcher: true, value: settings.materialColor, @@ -147,7 +148,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.additem), + icon: const Icon(IconsaxPlusLinear.additem), text: 'largeElement'.tr, switcher: true, value: settings.largeElement, @@ -175,7 +176,7 @@ class _SettingsPageState extends State { }, ), SettingCard( - icon: const Icon(Iconsax.code), + icon: const Icon(IconsaxPlusLinear.code_1), text: 'functions'.tr, onPressed: () { showModalBottomSheet( @@ -203,7 +204,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.map_1), + icon: const Icon(IconsaxPlusLinear.map), text: 'location'.tr, switcher: true, value: settings.location, @@ -270,7 +271,8 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.notification_1), + icon: const Icon( + IconsaxPlusLinear.notification_1), text: 'notifications'.tr, switcher: true, value: settings.notifications, @@ -307,7 +309,8 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.notification_status), + icon: const Icon( + IconsaxPlusLinear.notification_status), text: 'timeRange'.tr, dropdown: true, dropdownName: '$timeRange', @@ -334,7 +337,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.timer_start), + icon: const Icon(IconsaxPlusLinear.timer_start), text: 'timeStart'.tr, info: true, infoSettings: true, @@ -394,7 +397,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.timer_pause), + icon: const Icon(IconsaxPlusLinear.timer_pause), text: 'timeEnd'.tr, info: true, infoSettings: true, @@ -464,7 +467,7 @@ class _SettingsPageState extends State { }, ), SettingCard( - icon: const Icon(Iconsax.d_square), + icon: const Icon(IconsaxPlusLinear.d_square), text: 'data'.tr, onPressed: () { showModalBottomSheet( @@ -492,7 +495,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.cloud_notif), + icon: const Icon(IconsaxPlusLinear.cloud_notif), text: 'roundDegree'.tr, switcher: true, value: settings.roundDegree, @@ -510,7 +513,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.sun_1), + icon: const Icon(IconsaxPlusLinear.sun_1), text: 'degrees'.tr, dropdown: true, dropdownName: settings.degrees.tr, @@ -533,7 +536,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.rulerpen), + icon: const Icon(IconsaxPlusLinear.rulerpen), text: 'measurements'.tr, dropdown: true, dropdownName: settings.measurements.tr, @@ -557,7 +560,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.wind), + icon: const Icon(IconsaxPlusLinear.wind), text: 'wind'.tr, dropdown: true, dropdownName: settings.wind.tr, @@ -573,7 +576,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.ruler), + icon: const Icon(IconsaxPlusLinear.ruler), text: 'pressure'.tr, dropdown: true, dropdownName: settings.pressure.tr, @@ -589,7 +592,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.clock), + icon: const Icon(IconsaxPlusLinear.clock_1), text: 'timeformat'.tr, dropdown: true, dropdownName: settings.timeformat.tr, @@ -615,7 +618,7 @@ class _SettingsPageState extends State { }, ), SettingCard( - icon: const Icon(Iconsax.setting_3), + icon: const Icon(IconsaxPlusLinear.setting_3), text: 'widget'.tr, onPressed: () { showModalBottomSheet( @@ -643,7 +646,8 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.bucket_square), + icon: + const Icon(IconsaxPlusLinear.bucket_square), text: 'widgetBackground'.tr, info: true, infoWidget: CircleAvatar( @@ -711,7 +715,7 @@ class _SettingsPageState extends State { ), IconButton( icon: const Icon( - Iconsax.tick_square, + IconsaxPlusLinear.tick_square, ), onPressed: () { if (colorBackground == null) { @@ -735,7 +739,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.text_block), + icon: const Icon(IconsaxPlusLinear.text_block), text: 'widgetText'.tr, info: true, infoWidget: CircleAvatar( @@ -800,7 +804,7 @@ class _SettingsPageState extends State { ), IconButton( icon: const Icon( - Iconsax.tick_square, + IconsaxPlusLinear.tick_square, ), onPressed: () { if (colorText == null) return; @@ -832,7 +836,7 @@ class _SettingsPageState extends State { }, ), SettingCard( - icon: const Icon(Iconsax.language_square), + icon: const Icon(IconsaxPlusLinear.language_square), text: 'language'.tr, info: true, infoSettings: true, @@ -899,7 +903,7 @@ class _SettingsPageState extends State { }, ), SettingCard( - icon: const Icon(Iconsax.dollar_square), + icon: const Icon(IconsaxPlusLinear.dollar_square), text: 'support'.tr, onPressed: () { showModalBottomSheet( @@ -927,14 +931,14 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.card), + icon: const Icon(IconsaxPlusLinear.card), text: 'DonationAlerts', onPressed: () => urlLauncher( 'https://www.donationalerts.com/r/darkmoonight'), ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.wallet), + icon: const Icon(IconsaxPlusLinear.wallet), text: 'ЮMoney', onPressed: () => urlLauncher( 'https://yoomoney.ru/to/4100117672775961'), @@ -951,7 +955,7 @@ class _SettingsPageState extends State { }, ), SettingCard( - icon: const Icon(Iconsax.link_square), + icon: const Icon(IconsaxPlusLinear.link_square), text: 'groups'.tr, onPressed: () { showModalBottomSheet( @@ -979,7 +983,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.voice_square), + icon: const Icon(LineAwesomeIcons.discord), text: 'Discord', onPressed: () async { final Uri url = Uri.parse( @@ -992,7 +996,7 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: const Icon(Iconsax.message_square), + icon: const Icon(LineAwesomeIcons.telegram), text: 'Telegram', onPressed: () async { final Uri url = @@ -1015,7 +1019,7 @@ class _SettingsPageState extends State { }, ), SettingCard( - icon: const Icon(Iconsax.document), + icon: const Icon(IconsaxPlusLinear.document), text: 'license'.tr, onPressed: () => Get.to( LicensePage( @@ -1037,7 +1041,7 @@ class _SettingsPageState extends State { ), ), SettingCard( - icon: const Icon(Iconsax.hierarchy_square_2), + icon: const Icon(IconsaxPlusLinear.hierarchy_square_2), text: 'version'.tr, info: true, infoWidget: _TextInfo( @@ -1045,10 +1049,7 @@ class _SettingsPageState extends State { ), ), SettingCard( - icon: Image.asset( - 'assets/images/github.png', - scale: 20, - ), + icon: const Icon(LineAwesomeIcons.github), text: '${'project'.tr} GitHub', onPressed: () => urlLauncher('https://github.com/darkmoonight/Rain'), diff --git a/lib/app/modules/settings/widgets/setting_card.dart b/lib/app/modules/settings/widgets/setting_card.dart index d0d0790..0a2f96c 100644 --- a/lib/app/modules/settings/widgets/setting_card.dart +++ b/lib/app/modules/settings/widgets/setting_card.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; -import 'package:iconsax/iconsax.dart'; +import 'package:iconsax_plus/iconsax_plus.dart'; class SettingCard extends StatelessWidget { const SettingCard({ @@ -63,7 +63,7 @@ class SettingCard extends StatelessWidget { ? DropdownButton( icon: const Padding( padding: EdgeInsets.only(left: 7), - child: Icon(Iconsax.arrow_down_1), + child: Icon(IconsaxPlusLinear.arrow_down), ), iconSize: 15, alignment: AlignmentDirectional.centerEnd, @@ -85,14 +85,14 @@ class SettingCard extends StatelessWidget { children: [ infoWidget!, const Icon( - Iconsax.arrow_right_3, + IconsaxPlusLinear.arrow_right_3, size: 18, ), ], ) : infoWidget! : const Icon( - Iconsax.arrow_right_3, + IconsaxPlusLinear.arrow_right_3, size: 18, ), ), diff --git a/lib/app/widgets/daily/info_daily_card.dart b/lib/app/widgets/daily/info_daily_card.dart index 02d5445..64fe1d4 100644 --- a/lib/app/widgets/daily/info_daily_card.dart +++ b/lib/app/widgets/daily/info_daily_card.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; -import 'package:iconsax/iconsax.dart'; +import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:intl/intl.dart'; import 'package:rain/app/data/weather.dart'; import 'package:rain/app/widgets/desc/desc_container.dart'; @@ -65,7 +65,7 @@ class _InfoDailyCardState extends State { Get.back(); }, icon: const Icon( - Iconsax.arrow_left_1, + IconsaxPlusLinear.arrow_left_3, size: 20, ), splashColor: Colors.transparent, diff --git a/lib/app/widgets/daily/weather_more.dart b/lib/app/widgets/daily/weather_more.dart index 328bcfd..348b003 100644 --- a/lib/app/widgets/daily/weather_more.dart +++ b/lib/app/widgets/daily/weather_more.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; -import 'package:iconsax/iconsax.dart'; +import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:rain/app/data/weather.dart'; import 'package:rain/app/widgets/daily/info_daily_card.dart'; import 'package:rain/app/widgets/daily/list_daily_card.dart'; @@ -32,7 +32,7 @@ class _WeatherMoreState extends State { Get.back(); }, icon: const Icon( - Iconsax.arrow_left_1, + IconsaxPlusLinear.arrow_left_3, size: 20, ), splashColor: transparent, diff --git a/lib/app/widgets/now/weather_now.dart b/lib/app/widgets/now/weather_now.dart index be9626c..7d385c7 100644 --- a/lib/app/widgets/now/weather_now.dart +++ b/lib/app/widgets/now/weather_now.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:flutter_glow/flutter_glow.dart'; import 'package:gap/gap.dart'; import 'package:get/get.dart'; import 'package:intl/intl.dart'; @@ -51,12 +50,17 @@ class _WeatherNowState extends State { fit: BoxFit.fill, height: 200, ), - GlowText( + Text( '${roundDegree ? widget.degree.round() : widget.degree}', style: context.textTheme.displayLarge?.copyWith( - fontSize: 90, - fontWeight: FontWeight.w800, - ), + fontSize: 90, + fontWeight: FontWeight.w800, + shadows: const [ + Shadow( + blurRadius: 15, + offset: Offset(5, 5), + ) + ]), ), Text( statusWeather.getText(widget.weather), diff --git a/lib/translation/ru_ru.dart b/lib/translation/ru_ru.dart index 84a98ff..735d825 100644 --- a/lib/translation/ru_ru.dart +++ b/lib/translation/ru_ru.dart @@ -132,5 +132,6 @@ class RuRu { 'hourlyVariables': 'Почасовые погодные условия', 'dailyVariables': 'Ежедневные погодные условия', 'largeElement': 'Отображение погоды большим элементом', + 'map': 'Карта', }; } diff --git a/pubspec.lock b/pubspec.lock index 12eab34..2032060 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -26,10 +26,10 @@ packages: dependency: transitive description: name: ansicolor - sha256: "8bf17a8ff6ea17499e40a2d2542c2f481cd7615760c6d34065cb22bfd22e6880" + sha256: "50e982d500bc863e1d703448afdbf9e5a72eb48840a4f766fa361ffd6877055f" url: "https://pub.dev" source: hosted - version: "2.0.2" + version: "2.0.3" archive: dependency: transitive description: @@ -214,6 +214,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" + dart_earcut: + dependency: transitive + description: + name: dart_earcut + sha256: "41b493147e30a051efb2da1e3acb7f38fe0db60afba24ac1ea5684cee272721e" + url: "https://pub.dev" + source: hosted + version: "1.1.0" dart_style: dependency: transitive description: @@ -262,6 +270,22 @@ packages: url: "https://pub.dev" source: hosted version: "5.5.0+1" + dio_cache_interceptor: + dependency: "direct main" + description: + name: dio_cache_interceptor + sha256: fb7905c0d12075d8786a6b63bffd64ae062d053f682cfaf28d145a2686507308 + url: "https://pub.dev" + source: hosted + version: "3.5.0" + dio_cache_interceptor_file_store: + dependency: "direct main" + description: + name: dio_cache_interceptor_file_store + sha256: "9c5eff94481913ade139bb33ce58095483aae805aa1cb39c0471ca76f624c366" + url: "https://pub.dev" + source: hosted + version: "1.2.3" dio_web_adapter: dependency: transitive description: @@ -290,10 +314,10 @@ packages: dependency: transitive description: name: ffi - sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.3" file: dependency: transitive description: @@ -323,15 +347,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.0" - flutter_glow: - dependency: "direct main" - description: - path: "." - ref: HEAD - resolved-ref: "7c5e1fd34583db4b40073add9ca329b03bf52a51" - url: "https://github.com/payam-zahedi/flutter-glow.git" - source: git - version: "0.3.1" flutter_hsvcolor_picker: dependency: "direct main" description: @@ -385,6 +400,38 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_map: + dependency: "direct main" + description: + name: flutter_map + sha256: "2ecb34619a4be19df6f40c2f8dce1591675b4eff7a6857bd8f533706977385da" + url: "https://pub.dev" + source: hosted + version: "7.0.2" + flutter_map_animations: + dependency: "direct main" + description: + name: flutter_map_animations + sha256: "826c10a551d9dbb686a8ed9ee8815b974475812c41beb4ce9fe19095fe1c5611" + url: "https://pub.dev" + source: hosted + version: "0.7.0" + flutter_map_cache: + dependency: "direct main" + description: + name: flutter_map_cache + sha256: "47607b8d95ca791f0367d18955035d098faf80990e5e3bb0dbfa26271a6c2f43" + url: "https://pub.dev" + source: hosted + version: "1.5.1" + flutter_map_cancellable_tile_provider: + dependency: "direct main" + description: + name: flutter_map_cancellable_tile_provider + sha256: "6a2221be8044bd2abfd6ec1de97483fe03f01c7f8b6c2adb4ba160f60d95699a" + url: "https://pub.dev" + source: hosted + version: "3.0.0" flutter_native_splash: dependency: "direct dev" description: @@ -595,14 +642,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.2" - iconsax: + iconsax_plus: dependency: "direct main" description: - name: iconsax - sha256: fb0144c61f41f3f8a385fadc27783ea9f5359670be885ed7f35cef32565d5228 + name: iconsax_plus + sha256: e9e51b0652a1d3ceea5fedbfc2c1bb4ad432c2ceb7be7de2e30caf085678933c url: "https://pub.dev" source: hosted - version: "0.0.8" + version: "1.0.0" image: dependency: transitive description: @@ -691,6 +738,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.0" + latlong2: + dependency: "direct main" + description: + name: latlong2 + sha256: "98227922caf49e6056f91b6c56945ea1c7b166f28ffcd5fb8e72fc0b453cc8fe" + url: "https://pub.dev" + source: hosted + version: "0.9.1" leak_tracker: dependency: transitive description: @@ -715,6 +770,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.1" + line_awesome_flutter: + dependency: "direct main" + description: + name: line_awesome_flutter + sha256: "24cef0a34816ffed9846f1793172333be50dc29678d499893b3cb38d3c53db24" + url: "https://pub.dev" + source: hosted + version: "3.0.1" lints: dependency: transitive description: @@ -723,6 +786,22 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.0" + lists: + dependency: transitive + description: + name: lists + sha256: "4ca5c19ae4350de036a7e996cdd1ee39c93ac0a2b840f4915459b7d0a7d4ab27" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + logger: + dependency: transitive + description: + name: logger + sha256: "697d067c60c20999686a0add96cf6aba723b3aa1f83ecf806a8097231529ec32" + url: "https://pub.dev" + source: hosted + version: "2.4.0" logging: dependency: transitive description: @@ -755,6 +834,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.11.1" + material_floating_search_bar_2: + dependency: "direct main" + description: + name: material_floating_search_bar_2 + sha256: ab0c6d209d9491f98dd4c72f2641d0ba1dd35c87effca1f23d8679bece43add0 + url: "https://pub.dev" + source: hosted + version: "0.5.0" meta: dependency: transitive description: @@ -763,6 +850,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.15.0" + mgrs_dart: + dependency: transitive + description: + name: mgrs_dart + sha256: fb89ae62f05fa0bb90f70c31fc870bcbcfd516c843fb554452ab3396f78586f7 + url: "https://pub.dev" + source: hosted + version: "2.0.0" mime: dependency: transitive description: @@ -823,10 +918,10 @@ packages: dependency: transitive description: name: path_provider_android - sha256: "490539678396d4c3c0b06efdaab75ae60675c3e0c66f72bc04c2e2c1e0e2abeb" + sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7" url: "https://pub.dev" source: hosted - version: "2.2.9" + version: "2.2.10" path_provider_foundation: dependency: transitive description: @@ -883,6 +978,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" + polylabel: + dependency: transitive + description: + name: polylabel + sha256: "41b9099afb2aa6c1730bdd8a0fab1400d287694ec7615dd8516935fa3144214b" + url: "https://pub.dev" + source: hosted + version: "1.0.1" pool: dependency: transitive description: @@ -891,6 +994,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.5.1" + proj4dart: + dependency: transitive + description: + name: proj4dart + sha256: c8a659ac9b6864aa47c171e78d41bbe6f5e1d7bd790a5814249e6b68bc44324e + url: "https://pub.dev" + source: hosted + version: "2.1.0" pub_semver: dependency: transitive description: @@ -1008,6 +1119,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558" + url: "https://pub.dev" + source: hosted + version: "3.1.0+1" term_glyph: dependency: transitive description: @@ -1064,6 +1183,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.2" + unicode: + dependency: transitive + description: + name: unicode + sha256: "0f69e46593d65245774d4f17125c6084d2c20b4e473a983f6e21b7d7762218f1" + url: "https://pub.dev" + source: hosted + version: "0.3.1" universal_io: dependency: transitive description: @@ -1196,10 +1323,10 @@ packages: dependency: transitive description: name: win32 - sha256: "015002c060f1ae9f41a818f2d5640389cc05283e368be19dc8d77cecb43c40c9" + sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a" url: "https://pub.dev" source: hosted - version: "5.5.3" + version: "5.5.4" win32_registry: dependency: transitive description: @@ -1208,6 +1335,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.4" + wkt_parser: + dependency: transitive + description: + name: wkt_parser + sha256: "8a555fc60de3116c00aad67891bcab20f81a958e4219cc106e3c037aa3937f13" + url: "https://pub.dev" + source: hosted + version: "2.0.0" workmanager: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index e911667..df782ea 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -17,22 +17,18 @@ dependencies: gap: ^3.0.1 dio: ^5.5.0+1 intl: ^0.19.0 - isar: - version: ^3.1.7 - hosted: https://pub.isar-community.dev/ shimmer: ^3.0.0 - iconsax: ^0.0.8 + latlong2: ^0.9.1 timezone: ^0.9.4 geocoding: ^3.0.0 geolocator: ^13.0.1 home_widget: ^0.6.0 workmanager: ^0.5.2 + flutter_map: ^7.0.2 google_fonts: ^6.2.1 url_launcher: ^6.3.0 + iconsax_plus: ^1.0.0 time_machine: ^0.9.17 - flutter_glow: - git: - url: https://github.com/payam-zahedi/flutter-glow.git dynamic_color: ^1.7.0 path_provider: ^2.1.4 # quick_settings: ^1.0.1 @@ -41,17 +37,26 @@ dependencies: device_info_plus: ^10.1.2 package_info_plus: ^8.0.2 connectivity_plus: ^6.0.5 + flutter_map_cache: ^1.5.1 freezed_annotation: ^2.4.4 - isar_flutter_libs: - version: ^3.1.7 - hosted: https://pub.isar-community.dev/ flutter_displaymode: ^0.6.0 lat_lng_to_timezone: ^0.2.0 - # font_awesome_flutter: ^10.7.0 + line_awesome_flutter: ^3.0.1 + dio_cache_interceptor: ^3.5.0 + flutter_map_animations: ^0.7.0 flutter_hsvcolor_picker: ^1.5.1 scrollable_positioned_list: ^0.3.8 flutter_local_notifications: ^17.2.2 + material_floating_search_bar_2: ^0.5.0 internet_connection_checker_plus: ^2.5.1 + dio_cache_interceptor_file_store: ^1.2.2 + flutter_map_cancellable_tile_provider: ^3.0.0 + isar: + version: ^3.1.7 + hosted: https://pub.isar-community.dev/ + isar_flutter_libs: + version: ^3.1.7 + hosted: https://pub.isar-community.dev/ # Uncomment this for publishing FLOSS variant # dependency_overrides: @@ -67,12 +72,12 @@ dev_dependencies: freezed: ^2.5.7 build_runner: ^2.4.12 flutter_lints: ^4.0.0 - isar_generator: - version: ^3.1.7 - hosted: https://pub.isar-community.dev/ json_serializable: ^6.8.0 flutter_native_splash: ^2.4.1 flutter_launcher_icons: ^0.13.1 + isar_generator: + version: ^3.1.7 + hosted: https://pub.isar-community.dev/ flutter_launcher_icons: android: true From 8ed047a1aa0e65210f355d94c7702a0634f166d0 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Thu, 15 Aug 2024 22:39:51 +0300 Subject: [PATCH 11/41] Add markers --- .gitignore | 4 +- lib/app/controller/controller.dart | 8 ++ lib/app/data/weather.dart | 8 ++ lib/app/data/weather.g.dart | 8 +- .../cards/widgets/create_card_weather.dart | 22 +++- lib/app/modules/map/view/map.dart | 107 +++++++++++++++++- lib/app/modules/settings/view/settings.dart | 18 +-- lib/translation/en_us.dart | 1 + pubspec.lock | 52 +++------ pubspec.yaml | 12 +- 10 files changed, 172 insertions(+), 68 deletions(-) diff --git a/.gitignore b/.gitignore index 4314849..3ddb2de 100644 --- a/.gitignore +++ b/.gitignore @@ -41,4 +41,6 @@ app.*.map.json # Android Studio will place build artifacts here /android/app/debug /android/app/profile -/android/app/release \ No newline at end of file +/android/app/release + +/lib/secret_key.dart \ No newline at end of file diff --git a/lib/app/controller/controller.dart b/lib/app/controller/controller.dart index eac9623..1e01069 100644 --- a/lib/app/controller/controller.dart +++ b/lib/app/controller/controller.dart @@ -21,6 +21,7 @@ import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; import 'package:timezone/data/latest_all.dart' as tz; import 'package:timezone/standalone.dart' as tz; import 'package:timezone/timezone.dart' as tz; +import 'package:url_launcher/url_launcher.dart'; import 'package:workmanager/workmanager.dart'; class WeatherController extends GetxController { @@ -597,4 +598,11 @@ class WeatherController extends GetxController { return !value.contains(false); }); } + + void urlLauncher(String uri) async { + final Uri url = Uri.parse(uri); + if (!await launchUrl(url, mode: LaunchMode.externalApplication)) { + throw Exception('Could not launch $url'); + } + } } diff --git a/lib/app/data/weather.dart b/lib/app/data/weather.dart index 466828b..09d475a 100644 --- a/lib/app/data/weather.dart +++ b/lib/app/data/weather.dart @@ -157,6 +157,14 @@ class LocationCache { this.city, this.district, }); + + Map toJson() => { + 'id': id, + 'lat': lat, + 'lon': lon, + 'city': city, + 'district': district, + }; } @collection diff --git a/lib/app/data/weather.g.dart b/lib/app/data/weather.g.dart index bd8959d..0b516b4 100644 --- a/lib/app/data/weather.g.dart +++ b/lib/app/data/weather.g.dart @@ -124,7 +124,7 @@ const SettingsSchema = CollectionSchema( getId: _settingsGetId, getLinks: _settingsGetLinks, attach: _settingsAttach, - version: '3.1.7', + version: '3.1.8', ); int _settingsEstimateSize( @@ -3047,7 +3047,7 @@ const MainWeatherCacheSchema = CollectionSchema( getId: _mainWeatherCacheGetId, getLinks: _mainWeatherCacheGetLinks, attach: _mainWeatherCacheAttach, - version: '3.1.7', + version: '3.1.8', ); int _mainWeatherCacheEstimateSize( @@ -10770,7 +10770,7 @@ const LocationCacheSchema = CollectionSchema( getId: _locationCacheGetId, getLinks: _locationCacheGetLinks, attach: _locationCacheAttach, - version: '3.1.7', + version: '3.1.8', ); int _locationCacheEstimateSize( @@ -11869,7 +11869,7 @@ const WeatherCardSchema = CollectionSchema( getId: _weatherCardGetId, getLinks: _weatherCardGetLinks, attach: _weatherCardAttach, - version: '3.1.7', + version: '3.1.8', ); int _weatherCardEstimateSize( diff --git a/lib/app/modules/cards/widgets/create_card_weather.dart b/lib/app/modules/cards/widgets/create_card_weather.dart index 752dd35..5fa39a7 100644 --- a/lib/app/modules/cards/widgets/create_card_weather.dart +++ b/lib/app/modules/cards/widgets/create_card_weather.dart @@ -9,7 +9,13 @@ import 'package:rain/app/widgets/text_form.dart'; import 'package:rain/main.dart'; class CreateWeatherCard extends StatefulWidget { - const CreateWeatherCard({super.key}); + const CreateWeatherCard({ + super.key, + this.latitude, + this.longitude, + }); + final String? latitude; + final String? longitude; @override State createState() => _CreateWeatherCardState(); @@ -21,11 +27,11 @@ class _CreateWeatherCardState extends State final formKey = GlobalKey(); final _focusNode = FocusNode(); final weatherController = Get.put(WeatherController()); - final _controller = TextEditingController(); - final _controllerLat = TextEditingController(); - final _controllerLon = TextEditingController(); - final _controllerCity = TextEditingController(); - final _controllerDistrict = TextEditingController(); + late final TextEditingController _controller = TextEditingController(); + late TextEditingController _controllerLat = TextEditingController(); + late TextEditingController _controllerLon = TextEditingController(); + late final TextEditingController _controllerCity = TextEditingController(); + late final TextEditingController _controllerDistrict = TextEditingController(); late AnimationController _animationController; late Animation _animation; @@ -33,6 +39,10 @@ class _CreateWeatherCardState extends State @override void initState() { super.initState(); + if (widget.latitude != null && widget.longitude != null) { + _controllerLat = TextEditingController(text: widget.latitude); + _controllerLon = TextEditingController(text: widget.longitude); + } _animationController = AnimationController( duration: const Duration(milliseconds: 300), vsync: this, diff --git a/lib/app/modules/map/view/map.dart b/lib/app/modules/map/view/map.dart index e4d3141..4eadf25 100644 --- a/lib/app/modules/map/view/map.dart +++ b/lib/app/modules/map/view/map.dart @@ -1,15 +1,17 @@ import 'dart:io'; - import 'package:flutter/material.dart'; import 'package:flutter_map/flutter_map.dart'; import 'package:flutter_map_animations/flutter_map_animations.dart'; import 'package:flutter_map_cache/flutter_map_cache.dart'; import 'package:get/get.dart'; +import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:latlong2/latlong.dart'; import 'package:path_provider/path_provider.dart'; import 'package:rain/app/controller/controller.dart'; import 'package:dio_cache_interceptor/dio_cache_interceptor.dart'; import 'package:dio_cache_interceptor_file_store/dio_cache_interceptor_file_store.dart'; +import 'package:rain/app/modules/cards/widgets/create_card_weather.dart'; +import 'package:rain/secret_key.dart'; class MapWeather extends StatefulWidget { const MapWeather({super.key}); @@ -21,6 +23,7 @@ class MapWeather extends StatefulWidget { class _MapWeatherState extends State with TickerProviderStateMixin { late final _animatedMapController = AnimatedMapController(vsync: this); final weatherController = Get.put(WeatherController()); + bool isDarkMode = Get.theme.brightness == Brightness.dark; final Future _cacheStoreFuture = _getCacheStore(); @@ -32,7 +35,10 @@ class _MapWeatherState extends State with TickerProviderStateMixin { @override Widget build(BuildContext context) { final mainLocation = weatherController.location; - bool isDarkMode = Theme.of(context).brightness == Brightness.dark; + // final mainWeather = weatherController.mainWeather; + // final weatherCard = WeatherCard.fromJson({} + // ..addAll(mainWeather.toJson()) + // ..addAll(mainLocation.toJson())); Widget darkModeTilesContainerBuilder( BuildContext context, @@ -51,7 +57,8 @@ class _MapWeatherState extends State with TickerProviderStateMixin { Widget openStreetMapTileLayer(CacheStore cacheStore) { return TileLayer( - urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', + urlTemplate: + 'https://api.mapbox.com/styles/v1/yoshimok/clzvnt6ae000s01qsh52veh8f/tiles/256/{z}/{x}/{y}@2x?access_token=$accessToken', userAgentPackageName: 'com.darkmoonight.rain', tileProvider: CachedTileProvider( store: cacheStore, @@ -76,12 +83,104 @@ class _MapWeatherState extends State with TickerProviderStateMixin { const LatLng(90, 180), ), ), + onLongPress: (tapPosition, point) => showModalBottomSheet( + context: context, + isScrollControlled: true, + enableDrag: false, + builder: (BuildContext context) => CreateWeatherCard( + latitude: '${point.latitude}', + longitude: '${point.longitude}', + ), + ), ), children: [ isDarkMode ? darkModeTilesContainerBuilder( context, openStreetMapTileLayer(cacheStore)) - : openStreetMapTileLayer(cacheStore) + : openStreetMapTileLayer(cacheStore), + RichAttributionWidget( + animationConfig: const ScaleRAWA(), + attributions: [ + TextSourceAttribution( + 'Mapbox contributors', + onTap: () => weatherController + .urlLauncher('https://www.mapbox.com/legal/tos'), + ), + ], + ), + Obx( + () { + var weatherCards = weatherController.weatherCards.toList(); + return MarkerLayer( + markers: [ + Marker( + point: LatLng(mainLocation.lat!, mainLocation.lon!), + child: GestureDetector( + onTap: () {}, + child: Container( + decoration: BoxDecoration( + color: + context.theme.colorScheme.secondaryContainer, + borderRadius: BorderRadius.circular(10), + ), + child: Icon( + IconsaxPlusBold.home, + color: context + .theme.colorScheme.onSecondaryContainer, + ), + ), + ), + ), + ...weatherCards.map( + (weatherCardList) => Marker( + width: 35, + height: 35, + point: LatLng( + weatherCardList.lat!, weatherCardList.lon!), + child: GestureDetector( + onTap: () {}, + child: Container( + decoration: BoxDecoration( + color: context + .theme.colorScheme.secondaryContainer, + borderRadius: BorderRadius.circular(10), + ), + child: const Icon( + IconsaxPlusBold.location, + color: Colors.red, + ), + ), + ), + ), + ) + ], + ); + }, + ), + // Positioned( + // left: 0, + // right: 0, + // bottom: 0, + // child: GestureDetector( + // onTap: () => Get.to( + // () => InfoWeatherCard( + // weatherCard: weatherCard, + // ), + // transition: Transition.downToUp, + // ), + // child: WeatherCardContainer( + // time: mainWeather.time!, + // timeDaily: mainWeather.timeDaily!, + // timeDay: mainWeather.sunrise!, + // timeNight: mainWeather.sunset!, + // weather: mainWeather.weathercode!, + // degree: mainWeather.temperature2M!, + // district: mainLocation.district!, + // city: mainLocation.city!, + // timezone: mainWeather.timezone!, + // ), + // ), + // ) ], ); } diff --git a/lib/app/modules/settings/view/settings.dart b/lib/app/modules/settings/view/settings.dart index cc842f1..c9e8b5a 100644 --- a/lib/app/modules/settings/view/settings.dart +++ b/lib/app/modules/settings/view/settings.dart @@ -38,13 +38,6 @@ class _SettingsPageState extends State { }); } - void urlLauncher(String uri) async { - final Uri url = Uri.parse(uri); - if (!await launchUrl(url, mode: LaunchMode.externalApplication)) { - throw Exception('Could not launch $url'); - } - } - @override void initState() { infoVersion(); @@ -933,14 +926,14 @@ class _SettingsPageState extends State { elevation: 4, icon: const Icon(IconsaxPlusLinear.card), text: 'DonationAlerts', - onPressed: () => urlLauncher( + onPressed: () => weatherController.urlLauncher( 'https://www.donationalerts.com/r/darkmoonight'), ), SettingCard( elevation: 4, icon: const Icon(IconsaxPlusLinear.wallet), text: 'ЮMoney', - onPressed: () => urlLauncher( + onPressed: () => weatherController.urlLauncher( 'https://yoomoney.ru/to/4100117672775961'), ), const Gap(10), @@ -1051,8 +1044,8 @@ class _SettingsPageState extends State { SettingCard( icon: const Icon(LineAwesomeIcons.github), text: '${'project'.tr} GitHub', - onPressed: () => - urlLauncher('https://github.com/darkmoonight/Rain'), + onPressed: () => weatherController + .urlLauncher('https://github.com/darkmoonight/Rain'), ), Padding( padding: const EdgeInsets.all(10), @@ -1063,7 +1056,8 @@ class _SettingsPageState extends State { overflow: TextOverflow.visible, textAlign: TextAlign.center, ), - onTap: () => urlLauncher('https://open-meteo.com/'), + onTap: () => + weatherController.urlLauncher('https://open-meteo.com/'), ), ), const Gap(10), diff --git a/lib/translation/en_us.dart b/lib/translation/en_us.dart index ea40693..162001e 100644 --- a/lib/translation/en_us.dart +++ b/lib/translation/en_us.dart @@ -132,5 +132,6 @@ class EnUs { 'hourlyVariables': 'Hourly weather variables', 'dailyVariables': 'Daily weather variables', 'largeElement': 'Large weather display', + 'map': 'Map', }; } diff --git a/pubspec.lock b/pubspec.lock index 2032060..e2b8e42 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -202,10 +202,10 @@ packages: dependency: transitive description: name: crypto - sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.5" csslib: dependency: transitive description: @@ -266,10 +266,10 @@ packages: dependency: "direct main" description: name: dio - sha256: e17f6b3097b8c51b72c74c9f071a605c47bcc8893839bd66732457a5ebe73714 + sha256: "0dfb6b6a1979dac1c1245e17cef824d7b452ea29bd33d3467269f9bef3715fb0" url: "https://pub.dev" source: hosted - version: "5.5.0+1" + version: "5.6.0" dio_cache_interceptor: dependency: "direct main" description: @@ -290,10 +290,10 @@ packages: dependency: transitive description: name: dio_web_adapter - sha256: "36c5b2d79eb17cdae41e974b7a8284fec631651d2a6f39a8a2ff22327e90aeac" + sha256: "33259a9276d6cea88774a0000cfae0d861003497755969c92faa223108620dc8" url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "2.0.0" dynamic_color: dependency: "direct main" description: @@ -412,10 +412,10 @@ packages: dependency: "direct main" description: name: flutter_map_animations - sha256: "826c10a551d9dbb686a8ed9ee8815b974475812c41beb4ce9fe19095fe1c5611" + sha256: a2135cd3cf36c07d821efeabb0be31aca380449528af80913c77b158e142eae9 url: "https://pub.dev" source: hosted - version: "0.7.0" + version: "0.7.1" flutter_map_cache: dependency: "direct main" description: @@ -424,14 +424,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.5.1" - flutter_map_cancellable_tile_provider: - dependency: "direct main" - description: - name: flutter_map_cancellable_tile_provider - sha256: "6a2221be8044bd2abfd6ec1de97483fe03f01c7f8b6c2adb4ba160f60d95699a" - url: "https://pub.dev" - source: hosted - version: "3.0.0" flutter_native_splash: dependency: "direct dev" description: @@ -686,26 +678,26 @@ packages: dependency: "direct main" description: name: isar - sha256: d06cca880885fe016d20a53847ce8605cde595e38de00a613b086fa8fd900790 + sha256: e17a9555bc7f22ff26568b8c64d019b4ffa2dc6bd4cb1c8d9b269aefd32e53ad url: "https://pub.isar-community.dev" source: hosted - version: "3.1.7" + version: "3.1.8" isar_flutter_libs: dependency: "direct main" description: name: isar_flutter_libs - sha256: d5036c0cb92b15025301fb7260e7a7557393c855ed2f9903f2b1fbb56f423bc5 + sha256: "78710781e658ce4bff59b3f38c5b2735e899e627f4e926e1221934e77b95231a" url: "https://pub.isar-community.dev" source: hosted - version: "3.1.7" + version: "3.1.8" isar_generator: dependency: "direct dev" description: name: isar_generator - sha256: c88bcdfc4a6407ff9672364bf62330d0314e88753dd0b442179f2f802a5f2179 + sha256: "484e73d3b7e81dbd816852fe0b9497333118a9aeb646fd2d349a62cc8980ffe1" url: "https://pub.isar-community.dev" source: hosted - version: "3.1.7" + version: "3.1.8" js: dependency: transitive description: @@ -834,14 +826,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.11.1" - material_floating_search_bar_2: - dependency: "direct main" - description: - name: material_floating_search_bar_2 - sha256: ab0c6d209d9491f98dd4c72f2641d0ba1dd35c87effca1f23d8679bece43add0 - url: "https://pub.dev" - source: hosted - version: "0.5.0" meta: dependency: transitive description: @@ -1123,10 +1107,10 @@ packages: dependency: transitive description: name: synchronized - sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558" + sha256: a824e842b8a054f91a728b783c177c1e4731f6b124f9192468457a8913371255 url: "https://pub.dev" source: hosted - version: "3.1.0+1" + version: "3.2.0" term_glyph: dependency: transitive description: @@ -1211,10 +1195,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "94d8ad05f44c6d4e2ffe5567ab4d741b82d62e3c8e288cc1fcea45965edf47c9" + sha256: f0c73347dfcfa5b3db8bc06e1502668265d39c08f310c29bff4e28eea9699f79 url: "https://pub.dev" source: hosted - version: "6.3.8" + version: "6.3.9" url_launcher_ios: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index df782ea..53f3cc1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: sdk: flutter get: ^4.6.6 gap: ^3.0.1 - dio: ^5.5.0+1 + dio: ^5.6.0 intl: ^0.19.0 shimmer: ^3.0.0 latlong2: ^0.9.1 @@ -43,19 +43,17 @@ dependencies: lat_lng_to_timezone: ^0.2.0 line_awesome_flutter: ^3.0.1 dio_cache_interceptor: ^3.5.0 - flutter_map_animations: ^0.7.0 + flutter_map_animations: ^0.7.1 flutter_hsvcolor_picker: ^1.5.1 scrollable_positioned_list: ^0.3.8 flutter_local_notifications: ^17.2.2 - material_floating_search_bar_2: ^0.5.0 internet_connection_checker_plus: ^2.5.1 dio_cache_interceptor_file_store: ^1.2.2 - flutter_map_cancellable_tile_provider: ^3.0.0 isar: - version: ^3.1.7 + version: ^3.1.8 hosted: https://pub.isar-community.dev/ isar_flutter_libs: - version: ^3.1.7 + version: ^3.1.8 hosted: https://pub.isar-community.dev/ # Uncomment this for publishing FLOSS variant @@ -76,7 +74,7 @@ dev_dependencies: flutter_native_splash: ^2.4.1 flutter_launcher_icons: ^0.13.1 isar_generator: - version: ^3.1.7 + version: ^3.1.8 hosted: https://pub.isar-community.dev/ flutter_launcher_icons: From 383fb24881d35a9d61f7a5d66f679e4900a36e97 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sun, 18 Aug 2024 14:08:54 +0300 Subject: [PATCH 12/41] Fix markers --- .gitignore | 4 +- lib/app/modules/home.dart | 290 ++++++++-------- lib/app/modules/map/view/map.dart | 361 ++++++++++++-------- lib/app/modules/settings/view/settings.dart | 21 +- 4 files changed, 361 insertions(+), 315 deletions(-) diff --git a/.gitignore b/.gitignore index 3ddb2de..4314849 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,4 @@ app.*.map.json # Android Studio will place build artifacts here /android/app/debug /android/app/profile -/android/app/release - -/lib/secret_key.dart \ No newline at end of file +/android/app/release \ No newline at end of file diff --git a/lib/app/modules/home.dart b/lib/app/modules/home.dart index 2d97edc..00fcb63 100644 --- a/lib/app/modules/home.dart +++ b/lib/app/modules/home.dart @@ -85,154 +85,156 @@ class _HomePageState extends State with TickerProviderStateMixin { child: ScaffoldMessenger( key: globalKey, child: Scaffold( - appBar: AppBar( - centerTitle: true, - automaticallyImplyLeading: false, - leading: switch (tabIndex) { - 0 => IconButton( - onPressed: () { - Get.to(() => const SelectGeolocation(isStart: false), - transition: Transition.downToUp); + appBar: tabIndex == 2 + ? null + : AppBar( + centerTitle: true, + automaticallyImplyLeading: false, + leading: switch (tabIndex) { + 0 => IconButton( + onPressed: () { + Get.to(() => const SelectGeolocation(isStart: false), + transition: Transition.downToUp); + }, + icon: const Icon( + IconsaxPlusLinear.global_search, + size: 18, + ), + ), + int() => null, }, - icon: const Icon( - IconsaxPlusLinear.global_search, - size: 18, - ), - ), - int() => null, - }, - title: switch (tabIndex) { - 0 => visible - ? RawAutocomplete( - focusNode: _focusNode, - textEditingController: _controller, - fieldViewBuilder: (_, __, ___, ____) { - return TextField( - controller: _controller, - focusNode: _focusNode, - style: labelLarge?.copyWith(fontSize: 16), - decoration: InputDecoration( - hintText: 'search'.tr, - ), - ); - }, - optionsBuilder: (TextEditingValue textEditingValue) { - if (textEditingValue.text.isEmpty) { - return const Iterable.empty(); - } - return WeatherAPI() - .getCity(textEditingValue.text, locale); - }, - onSelected: (Result selection) async { - await weatherController.deleteAll(true); - await weatherController.getLocation( - double.parse('${selection.latitude}'), - double.parse('${selection.longitude}'), - selection.admin1, - selection.name, - ); - visible = false; - _controller.clear(); - _focusNode.unfocus(); - setState(() {}); - }, - displayStringForOption: (Result option) => - '${option.name}, ${option.admin1}', - optionsViewBuilder: (BuildContext context, - AutocompleteOnSelected onSelected, - Iterable options) { - return Align( - alignment: Alignment.topLeft, - child: Material( - borderRadius: BorderRadius.circular(20), - elevation: 4.0, - child: SizedBox( - width: 250, - child: ListView.builder( - padding: EdgeInsets.zero, - shrinkWrap: true, - itemCount: options.length, - itemBuilder: (BuildContext context, int index) { - final Result option = - options.elementAt(index); - return InkWell( - onTap: () => onSelected(option), - child: ListTile( - title: Text( - '${option.name}, ${option.admin1}', - style: labelLarge, - ), + title: switch (tabIndex) { + 0 => visible + ? RawAutocomplete( + focusNode: _focusNode, + textEditingController: _controller, + fieldViewBuilder: (_, __, ___, ____) { + return TextField( + controller: _controller, + focusNode: _focusNode, + style: labelLarge?.copyWith(fontSize: 16), + decoration: InputDecoration( + hintText: 'search'.tr, + ), + ); + }, + optionsBuilder: + (TextEditingValue textEditingValue) { + if (textEditingValue.text.isEmpty) { + return const Iterable.empty(); + } + return WeatherAPI() + .getCity(textEditingValue.text, locale); + }, + onSelected: (Result selection) async { + await weatherController.deleteAll(true); + await weatherController.getLocation( + double.parse('${selection.latitude}'), + double.parse('${selection.longitude}'), + selection.admin1, + selection.name, + ); + visible = false; + _controller.clear(); + _focusNode.unfocus(); + setState(() {}); + }, + displayStringForOption: (Result option) => + '${option.name}, ${option.admin1}', + optionsViewBuilder: (BuildContext context, + AutocompleteOnSelected onSelected, + Iterable options) { + return Align( + alignment: Alignment.topLeft, + child: Material( + borderRadius: BorderRadius.circular(20), + elevation: 4.0, + child: SizedBox( + width: 250, + child: ListView.builder( + padding: EdgeInsets.zero, + shrinkWrap: true, + itemCount: options.length, + itemBuilder: + (BuildContext context, int index) { + final Result option = + options.elementAt(index); + return InkWell( + onTap: () => onSelected(option), + child: ListTile( + title: Text( + '${option.name}, ${option.admin1}', + style: labelLarge, + ), + ), + ); + }, ), - ); - }, - ), - ), + ), + ), + ); + }, + ) + : Obx( + () { + final location = weatherController.location; + final city = location.city; + final district = location.district; + return Text( + weatherController.isLoading.isFalse + ? district!.isEmpty + ? '$city' + : city!.isEmpty + ? district + : city == district + ? city + : '$city' ', $district' + : settings.location + ? 'search'.tr + : (isar.locationCaches + .where() + .findAllSync()) + .isNotEmpty + ? 'loading'.tr + : 'searchCity'.tr, + style: textStyle, + ); + }, ), - ); - }, - ) - : Obx( - () { - final location = weatherController.location; - final city = location.city; - final district = location.district; - return Text( - weatherController.isLoading.isFalse - ? district!.isEmpty - ? '$city' - : city!.isEmpty - ? district - : city == district - ? city - : '$city' ', $district' - : settings.location - ? 'search'.tr - : (isar.locationCaches.where().findAllSync()) - .isNotEmpty - ? 'loading'.tr - : 'searchCity'.tr, - style: textStyle, - ); - }, - ), - 1 => Text( - 'cities'.tr, - style: textStyle, + 1 => Text( + 'cities'.tr, + style: textStyle, + ), + 3 => Text( + 'settings_full'.tr, + style: textStyle, + ), + int() => null, + }, + actions: switch (tabIndex) { + 0 => [ + IconButton( + onPressed: () { + if (visible) { + _controller.clear(); + _focusNode.unfocus(); + visible = false; + } else { + visible = true; + } + setState(() {}); + }, + icon: Icon( + visible + ? IconsaxPlusLinear.close_circle + : IconsaxPlusLinear.search_normal_1, + size: 18, + ), + ) + ], + int() => null, + }, ), - 2 => Text( - 'map'.tr, - style: textStyle, - ), - 3 => Text( - 'settings_full'.tr, - style: textStyle, - ), - int() => null, - }, - actions: switch (tabIndex) { - 0 => [ - IconButton( - onPressed: () { - if (visible) { - _controller.clear(); - _focusNode.unfocus(); - visible = false; - } else { - visible = true; - } - setState(() {}); - }, - icon: Icon( - visible - ? IconsaxPlusLinear.close_circle - : IconsaxPlusLinear.search_normal_1, - size: 18, - ), - ) - ], - int() => null, - }, - ), body: SafeArea( child: TabBarView( controller: tabController, diff --git a/lib/app/modules/map/view/map.dart b/lib/app/modules/map/view/map.dart index 4eadf25..4144e21 100644 --- a/lib/app/modules/map/view/map.dart +++ b/lib/app/modules/map/view/map.dart @@ -1,17 +1,19 @@ import 'dart:io'; +import 'package:dio_cache_interceptor/dio_cache_interceptor.dart'; +import 'package:dio_cache_interceptor_file_store/dio_cache_interceptor_file_store.dart'; import 'package:flutter/material.dart'; import 'package:flutter_map/flutter_map.dart'; import 'package:flutter_map_animations/flutter_map_animations.dart'; import 'package:flutter_map_cache/flutter_map_cache.dart'; import 'package:get/get.dart'; -import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:latlong2/latlong.dart'; import 'package:path_provider/path_provider.dart'; import 'package:rain/app/controller/controller.dart'; -import 'package:dio_cache_interceptor/dio_cache_interceptor.dart'; -import 'package:dio_cache_interceptor_file_store/dio_cache_interceptor_file_store.dart'; +import 'package:rain/app/data/weather.dart'; +import 'package:rain/app/modules/cards/view/info_weather_card.dart'; import 'package:rain/app/modules/cards/widgets/create_card_weather.dart'; -import 'package:rain/secret_key.dart'; +import 'package:rain/app/modules/cards/widgets/weather_card_container.dart'; +import 'package:rain/app/widgets/status/status_weather.dart'; class MapWeather extends StatefulWidget { const MapWeather({super.key}); @@ -21,173 +23,230 @@ class MapWeather extends StatefulWidget { } class _MapWeatherState extends State with TickerProviderStateMixin { - late final _animatedMapController = AnimatedMapController(vsync: this); + late final AnimatedMapController _animatedMapController = + AnimatedMapController(vsync: this); final weatherController = Get.put(WeatherController()); - bool isDarkMode = Get.theme.brightness == Brightness.dark; - + final statusWeather = StatusWeather(); final Future _cacheStoreFuture = _getCacheStore(); + final bool _isDarkMode = Get.theme.brightness == Brightness.dark; + WeatherCard? _selectedWeatherCard; + bool _isCardVisible = false; + double _cardBottomPosition = -200; + static Future _getCacheStore() async { final dir = await getTemporaryDirectory(); return FileCacheStore('${dir.path}${Platform.pathSeparator}MapTiles'); } + void _onMarkerTap(WeatherCard weatherCard) { + setState(() { + _selectedWeatherCard = weatherCard; + _cardBottomPosition = 0; + _isCardVisible = true; + }); + } + + void _hideCard() { + setState(() { + _cardBottomPosition = -200; + }); + Future.delayed(const Duration(milliseconds: 300), () { + setState(() { + _isCardVisible = false; + }); + }); + } + + Marker _buildMainLocationMarker( + WeatherCard weatherCard, int hourOfDay, int dayOfNow) { + return Marker( + height: 40, + width: 40, + point: LatLng(weatherCard.lat!, weatherCard.lon!), + child: GestureDetector( + onTap: () => _onMarkerTap(weatherCard), + child: Container( + decoration: BoxDecoration( + color: context.theme.colorScheme.onSecondary, + shape: BoxShape.circle, + ), + child: Image.asset( + statusWeather.getImageNow( + weatherCard.weathercode![hourOfDay], + weatherCard.time![hourOfDay], + weatherCard.sunrise![dayOfNow], + weatherCard.sunset![dayOfNow], + ), + scale: 15, + ), + ), + ), + ); + } + + Marker _buildCardMarker(WeatherCard weatherCardList) { + return Marker( + height: 40, + width: 40, + point: LatLng(weatherCardList.lat!, weatherCardList.lon!), + child: GestureDetector( + onTap: () => _onMarkerTap(weatherCardList), + child: Container( + decoration: BoxDecoration( + color: context.theme.colorScheme.onSecondary, + shape: BoxShape.circle, + ), + child: Image.asset( + statusWeather.getImageNow( + weatherCardList.weathercode![weatherController.getTime( + weatherCardList.time!, weatherCardList.timezone!)], + weatherCardList.time![weatherController.getTime( + weatherCardList.time!, weatherCardList.timezone!)], + weatherCardList.sunrise![weatherController.getDay( + weatherCardList.timeDaily!, weatherCardList.timezone!)], + weatherCardList.sunset![weatherController.getDay( + weatherCardList.timeDaily!, weatherCardList.timezone!)], + ), + scale: 15, + ), + ), + ), + ); + } + + Widget _buildMapTileLayer(CacheStore cacheStore) { + return TileLayer( + urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', + userAgentPackageName: 'com.darkmoonight.rain', + tileProvider: CachedTileProvider( + store: cacheStore, + maxStale: const Duration(days: 30), + ), + ); + } + + Widget _buildWeatherCard() { + return AnimatedPositioned( + duration: const Duration(milliseconds: 300), + curve: Curves.easeInOut, + left: 0, + right: 0, + bottom: _cardBottomPosition, + child: AnimatedOpacity( + opacity: _isCardVisible ? 1.0 : 0.0, + duration: const Duration(milliseconds: 300), + child: _isCardVisible + ? GestureDetector( + onTap: () => Get.to( + () => InfoWeatherCard(weatherCard: _selectedWeatherCard!), + transition: Transition.downToUp, + ), + child: WeatherCardContainer( + time: _selectedWeatherCard!.time!, + timeDaily: _selectedWeatherCard!.timeDaily!, + timeDay: _selectedWeatherCard!.sunrise!, + timeNight: _selectedWeatherCard!.sunset!, + weather: _selectedWeatherCard!.weathercode!, + degree: _selectedWeatherCard!.temperature2M!, + district: _selectedWeatherCard!.district!, + city: _selectedWeatherCard!.city!, + timezone: _selectedWeatherCard!.timezone!, + ), + ) + : const SizedBox.shrink(), + ), + ); + } + @override Widget build(BuildContext context) { final mainLocation = weatherController.location; - // final mainWeather = weatherController.mainWeather; - // final weatherCard = WeatherCard.fromJson({} - // ..addAll(mainWeather.toJson()) - // ..addAll(mainLocation.toJson())); + final mainWeather = weatherController.mainWeather; - Widget darkModeTilesContainerBuilder( - BuildContext context, - Widget tilesContainer, - ) { - return ColorFiltered( - colorFilter: const ColorFilter.matrix([ - -0.2126, -0.7152, -0.0722, 0, 255, // Red channel - -0.2126, -0.7152, -0.0722, 0, 255, // Green channel - -0.2126, -0.7152, -0.0722, 0, 255, // Blue channel - 0, 0, 0, 1, 0, // Alpha channel - ]), - child: tilesContainer, - ); - } - - Widget openStreetMapTileLayer(CacheStore cacheStore) { - return TileLayer( - urlTemplate: - 'https://api.mapbox.com/styles/v1/yoshimok/clzvnt6ae000s01qsh52veh8f/tiles/256/{z}/{x}/{y}@2x?access_token=$accessToken', - userAgentPackageName: 'com.darkmoonight.rain', - tileProvider: CachedTileProvider( - store: cacheStore, - maxStale: const Duration(days: 30), - )); - } + final hourOfDay = weatherController.hourOfDay.value; + final dayOfNow = weatherController.dayOfNow.value; return FutureBuilder( future: _cacheStoreFuture, builder: (context, snapshot) { - if (snapshot.hasData) { - final cacheStore = snapshot.data!; - return FlutterMap( - mapController: _animatedMapController.mapController, - options: MapOptions( - backgroundColor: context.theme.scaffoldBackgroundColor, - initialCenter: LatLng(mainLocation.lat!, mainLocation.lon!), - initialZoom: 12, - cameraConstraint: CameraConstraint.contain( - bounds: LatLngBounds( - const LatLng(-90, -180), - const LatLng(90, 180), - ), - ), - onLongPress: (tapPosition, point) => showModalBottomSheet( - context: context, - isScrollControlled: true, - enableDrag: false, - builder: (BuildContext context) => CreateWeatherCard( - latitude: '${point.latitude}', - longitude: '${point.longitude}', - ), - ), - ), - children: [ - isDarkMode - ? darkModeTilesContainerBuilder( - context, openStreetMapTileLayer(cacheStore)) - : openStreetMapTileLayer(cacheStore), - RichAttributionWidget( - animationConfig: const ScaleRAWA(), - attributions: [ - TextSourceAttribution( - 'Mapbox contributors', - onTap: () => weatherController - .urlLauncher('https://www.mapbox.com/legal/tos'), - ), - ], - ), - Obx( - () { - var weatherCards = weatherController.weatherCards.toList(); - return MarkerLayer( - markers: [ - Marker( - point: LatLng(mainLocation.lat!, mainLocation.lon!), - child: GestureDetector( - onTap: () {}, - child: Container( - decoration: BoxDecoration( - color: - context.theme.colorScheme.secondaryContainer, - borderRadius: BorderRadius.circular(10), - ), - child: Icon( - IconsaxPlusBold.home, - color: context - .theme.colorScheme.onSecondaryContainer, - ), - ), - ), - ), - ...weatherCards.map( - (weatherCardList) => Marker( - width: 35, - height: 35, - point: LatLng( - weatherCardList.lat!, weatherCardList.lon!), - child: GestureDetector( - onTap: () {}, - child: Container( - decoration: BoxDecoration( - color: context - .theme.colorScheme.secondaryContainer, - borderRadius: BorderRadius.circular(10), - ), - child: const Icon( - IconsaxPlusBold.location, - color: Colors.red, - ), - ), - ), - ), - ) - ], - ); - }, - ), - // Positioned( - // left: 0, - // right: 0, - // bottom: 0, - // child: GestureDetector( - // onTap: () => Get.to( - // () => InfoWeatherCard( - // weatherCard: weatherCard, - // ), - // transition: Transition.downToUp, - // ), - // child: WeatherCardContainer( - // time: mainWeather.time!, - // timeDaily: mainWeather.timeDaily!, - // timeDay: mainWeather.sunrise!, - // timeNight: mainWeather.sunset!, - // weather: mainWeather.weathercode!, - // degree: mainWeather.temperature2M!, - // district: mainLocation.district!, - // city: mainLocation.city!, - // timezone: mainWeather.timezone!, - // ), - // ), - // ) - ], - ); + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); } + if (snapshot.hasError) { return Center(child: Text(snapshot.error.toString())); } - return const Center(child: CircularProgressIndicator()); + + final cacheStore = snapshot.data!; + + return FlutterMap( + mapController: _animatedMapController.mapController, + options: MapOptions( + backgroundColor: context.theme.scaffoldBackgroundColor, + initialCenter: LatLng(mainLocation.lat!, mainLocation.lon!), + initialZoom: 12, + cameraConstraint: CameraConstraint.contain( + bounds: LatLngBounds( + const LatLng(-90, -180), + const LatLng(90, 180), + ), + ), + onTap: (_, __) => _hideCard(), + onLongPress: (tapPosition, point) => showModalBottomSheet( + context: context, + isScrollControlled: true, + enableDrag: false, + builder: (BuildContext context) => CreateWeatherCard( + latitude: '${point.latitude}', + longitude: '${point.longitude}', + ), + ), + ), + children: [ + if (_isDarkMode) + ColorFiltered( + colorFilter: const ColorFilter.matrix([ + -0.2126, -0.7152, -0.0722, 0, 255, // Red channel + -0.2126, -0.7152, -0.0722, 0, 255, // Green channel + -0.2126, -0.7152, -0.0722, 0, 255, // Blue channel + 0, 0, 0, 1, 0, // Alpha channel + ]), + child: _buildMapTileLayer(cacheStore), + ) + else + _buildMapTileLayer(cacheStore), + RichAttributionWidget( + animationConfig: const ScaleRAWA(), + attributions: [ + TextSourceAttribution( + 'OpenStreetMap contributors', + onTap: () => weatherController + .urlLauncher('https://openstreetmap.org/copyright'), + ), + ], + ), + Obx(() { + final mainMarker = _buildMainLocationMarker( + WeatherCard.fromJson({ + ...mainWeather.toJson(), + ...mainLocation.toJson(), + }), + hourOfDay, + dayOfNow, + ); + + final cardMarkers = weatherController.weatherCards + .map((weatherCardList) => _buildCardMarker(weatherCardList)) + .toList(); + + return MarkerLayer( + markers: [mainMarker, ...cardMarkers], + ); + }), + _buildWeatherCard(), + ], + ); }, ); } diff --git a/lib/app/modules/settings/view/settings.dart b/lib/app/modules/settings/view/settings.dart index c9e8b5a..609ebfa 100644 --- a/lib/app/modules/settings/view/settings.dart +++ b/lib/app/modules/settings/view/settings.dart @@ -15,7 +15,6 @@ import 'package:rain/app/modules/settings/widgets/setting_card.dart'; import 'package:rain/main.dart'; import 'package:rain/theme/theme_controller.dart'; import 'package:rain/utils/color_converter.dart'; -import 'package:url_launcher/url_launcher.dart'; class SettingsPage extends StatefulWidget { const SettingsPage({super.key}); @@ -978,27 +977,15 @@ class _SettingsPageState extends State { elevation: 4, icon: const Icon(LineAwesomeIcons.discord), text: 'Discord', - onPressed: () async { - final Uri url = Uri.parse( - 'https://discord.gg/JMMa9aHh8f'); - if (!await launchUrl(url, - mode: LaunchMode.externalApplication)) { - throw Exception('Could not launch $url'); - } - }, + onPressed: () => weatherController.urlLauncher( + 'https://discord.gg/JMMa9aHh8f'), ), SettingCard( elevation: 4, icon: const Icon(LineAwesomeIcons.telegram), text: 'Telegram', - onPressed: () async { - final Uri url = - Uri.parse('https://t.me/darkmoonightX'); - if (!await launchUrl(url, - mode: LaunchMode.externalApplication)) { - throw Exception('Could not launch $url'); - } - }, + onPressed: () => weatherController + .urlLauncher('https://t.me/darkmoonightX'), ), const Gap(10), ], From 27e276a09272ae8d0b545c18e2ed94d300f64580 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sun, 18 Aug 2024 18:35:30 +0300 Subject: [PATCH 13/41] Add search the map --- .../cards/widgets/create_card_weather.dart | 3 +- lib/app/modules/home.dart | 294 +++++++++-------- lib/app/modules/map/view/map.dart | 308 ++++++++++++------ 3 files changed, 359 insertions(+), 246 deletions(-) diff --git a/lib/app/modules/cards/widgets/create_card_weather.dart b/lib/app/modules/cards/widgets/create_card_weather.dart index 5fa39a7..d2d4c97 100644 --- a/lib/app/modules/cards/widgets/create_card_weather.dart +++ b/lib/app/modules/cards/widgets/create_card_weather.dart @@ -31,7 +31,8 @@ class _CreateWeatherCardState extends State late TextEditingController _controllerLat = TextEditingController(); late TextEditingController _controllerLon = TextEditingController(); late final TextEditingController _controllerCity = TextEditingController(); - late final TextEditingController _controllerDistrict = TextEditingController(); + late final TextEditingController _controllerDistrict = + TextEditingController(); late AnimationController _animationController; late Animation _animation; diff --git a/lib/app/modules/home.dart b/lib/app/modules/home.dart index 00fcb63..2d97edc 100644 --- a/lib/app/modules/home.dart +++ b/lib/app/modules/home.dart @@ -85,156 +85,154 @@ class _HomePageState extends State with TickerProviderStateMixin { child: ScaffoldMessenger( key: globalKey, child: Scaffold( - appBar: tabIndex == 2 - ? null - : AppBar( - centerTitle: true, - automaticallyImplyLeading: false, - leading: switch (tabIndex) { - 0 => IconButton( - onPressed: () { - Get.to(() => const SelectGeolocation(isStart: false), - transition: Transition.downToUp); - }, - icon: const Icon( - IconsaxPlusLinear.global_search, - size: 18, - ), - ), - int() => null, - }, - title: switch (tabIndex) { - 0 => visible - ? RawAutocomplete( - focusNode: _focusNode, - textEditingController: _controller, - fieldViewBuilder: (_, __, ___, ____) { - return TextField( - controller: _controller, - focusNode: _focusNode, - style: labelLarge?.copyWith(fontSize: 16), - decoration: InputDecoration( - hintText: 'search'.tr, - ), - ); - }, - optionsBuilder: - (TextEditingValue textEditingValue) { - if (textEditingValue.text.isEmpty) { - return const Iterable.empty(); - } - return WeatherAPI() - .getCity(textEditingValue.text, locale); - }, - onSelected: (Result selection) async { - await weatherController.deleteAll(true); - await weatherController.getLocation( - double.parse('${selection.latitude}'), - double.parse('${selection.longitude}'), - selection.admin1, - selection.name, - ); - visible = false; - _controller.clear(); - _focusNode.unfocus(); - setState(() {}); - }, - displayStringForOption: (Result option) => - '${option.name}, ${option.admin1}', - optionsViewBuilder: (BuildContext context, - AutocompleteOnSelected onSelected, - Iterable options) { - return Align( - alignment: Alignment.topLeft, - child: Material( - borderRadius: BorderRadius.circular(20), - elevation: 4.0, - child: SizedBox( - width: 250, - child: ListView.builder( - padding: EdgeInsets.zero, - shrinkWrap: true, - itemCount: options.length, - itemBuilder: - (BuildContext context, int index) { - final Result option = - options.elementAt(index); - return InkWell( - onTap: () => onSelected(option), - child: ListTile( - title: Text( - '${option.name}, ${option.admin1}', - style: labelLarge, - ), - ), - ); - }, - ), - ), - ), - ); - }, - ) - : Obx( - () { - final location = weatherController.location; - final city = location.city; - final district = location.district; - return Text( - weatherController.isLoading.isFalse - ? district!.isEmpty - ? '$city' - : city!.isEmpty - ? district - : city == district - ? city - : '$city' ', $district' - : settings.location - ? 'search'.tr - : (isar.locationCaches - .where() - .findAllSync()) - .isNotEmpty - ? 'loading'.tr - : 'searchCity'.tr, - style: textStyle, - ); - }, - ), - 1 => Text( - 'cities'.tr, - style: textStyle, - ), - 3 => Text( - 'settings_full'.tr, - style: textStyle, - ), - int() => null, - }, - actions: switch (tabIndex) { - 0 => [ - IconButton( - onPressed: () { - if (visible) { - _controller.clear(); - _focusNode.unfocus(); - visible = false; - } else { - visible = true; - } - setState(() {}); - }, - icon: Icon( - visible - ? IconsaxPlusLinear.close_circle - : IconsaxPlusLinear.search_normal_1, - size: 18, - ), - ) - ], - int() => null, + appBar: AppBar( + centerTitle: true, + automaticallyImplyLeading: false, + leading: switch (tabIndex) { + 0 => IconButton( + onPressed: () { + Get.to(() => const SelectGeolocation(isStart: false), + transition: Transition.downToUp); }, + icon: const Icon( + IconsaxPlusLinear.global_search, + size: 18, + ), ), + int() => null, + }, + title: switch (tabIndex) { + 0 => visible + ? RawAutocomplete( + focusNode: _focusNode, + textEditingController: _controller, + fieldViewBuilder: (_, __, ___, ____) { + return TextField( + controller: _controller, + focusNode: _focusNode, + style: labelLarge?.copyWith(fontSize: 16), + decoration: InputDecoration( + hintText: 'search'.tr, + ), + ); + }, + optionsBuilder: (TextEditingValue textEditingValue) { + if (textEditingValue.text.isEmpty) { + return const Iterable.empty(); + } + return WeatherAPI() + .getCity(textEditingValue.text, locale); + }, + onSelected: (Result selection) async { + await weatherController.deleteAll(true); + await weatherController.getLocation( + double.parse('${selection.latitude}'), + double.parse('${selection.longitude}'), + selection.admin1, + selection.name, + ); + visible = false; + _controller.clear(); + _focusNode.unfocus(); + setState(() {}); + }, + displayStringForOption: (Result option) => + '${option.name}, ${option.admin1}', + optionsViewBuilder: (BuildContext context, + AutocompleteOnSelected onSelected, + Iterable options) { + return Align( + alignment: Alignment.topLeft, + child: Material( + borderRadius: BorderRadius.circular(20), + elevation: 4.0, + child: SizedBox( + width: 250, + child: ListView.builder( + padding: EdgeInsets.zero, + shrinkWrap: true, + itemCount: options.length, + itemBuilder: (BuildContext context, int index) { + final Result option = + options.elementAt(index); + return InkWell( + onTap: () => onSelected(option), + child: ListTile( + title: Text( + '${option.name}, ${option.admin1}', + style: labelLarge, + ), + ), + ); + }, + ), + ), + ), + ); + }, + ) + : Obx( + () { + final location = weatherController.location; + final city = location.city; + final district = location.district; + return Text( + weatherController.isLoading.isFalse + ? district!.isEmpty + ? '$city' + : city!.isEmpty + ? district + : city == district + ? city + : '$city' ', $district' + : settings.location + ? 'search'.tr + : (isar.locationCaches.where().findAllSync()) + .isNotEmpty + ? 'loading'.tr + : 'searchCity'.tr, + style: textStyle, + ); + }, + ), + 1 => Text( + 'cities'.tr, + style: textStyle, + ), + 2 => Text( + 'map'.tr, + style: textStyle, + ), + 3 => Text( + 'settings_full'.tr, + style: textStyle, + ), + int() => null, + }, + actions: switch (tabIndex) { + 0 => [ + IconButton( + onPressed: () { + if (visible) { + _controller.clear(); + _focusNode.unfocus(); + visible = false; + } else { + visible = true; + } + setState(() {}); + }, + icon: Icon( + visible + ? IconsaxPlusLinear.close_circle + : IconsaxPlusLinear.search_normal_1, + size: 18, + ), + ) + ], + int() => null, + }, + ), body: SafeArea( child: TabBarView( controller: tabController, diff --git a/lib/app/modules/map/view/map.dart b/lib/app/modules/map/view/map.dart index 4144e21..5a0e0fd 100644 --- a/lib/app/modules/map/view/map.dart +++ b/lib/app/modules/map/view/map.dart @@ -5,15 +5,22 @@ import 'package:flutter/material.dart'; import 'package:flutter_map/flutter_map.dart'; import 'package:flutter_map_animations/flutter_map_animations.dart'; import 'package:flutter_map_cache/flutter_map_cache.dart'; +import 'package:gap/gap.dart'; import 'package:get/get.dart'; +import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:latlong2/latlong.dart'; import 'package:path_provider/path_provider.dart'; +import 'package:rain/app/api/api.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/info_weather_card.dart'; import 'package:rain/app/modules/cards/widgets/create_card_weather.dart'; import 'package:rain/app/modules/cards/widgets/weather_card_container.dart'; +import 'package:rain/app/widgets/status/status_data.dart'; import 'package:rain/app/widgets/status/status_weather.dart'; +import 'package:rain/app/widgets/text_form.dart'; +import 'package:rain/main.dart'; class MapWeather extends StatefulWidget { const MapWeather({super.key}); @@ -27,6 +34,7 @@ class _MapWeatherState extends State with TickerProviderStateMixin { AnimatedMapController(vsync: this); final weatherController = Get.put(WeatherController()); final statusWeather = StatusWeather(); + final statusData = StatusData(); final Future _cacheStoreFuture = _getCacheStore(); final bool _isDarkMode = Get.theme.brightness == Brightness.dark; @@ -34,11 +42,21 @@ class _MapWeatherState extends State with TickerProviderStateMixin { bool _isCardVisible = false; double _cardBottomPosition = -200; + final _focusNode = FocusNode(); + late final TextEditingController _controllerSearch = TextEditingController(); + static Future _getCacheStore() async { final dir = await getTemporaryDirectory(); return FileCacheStore('${dir.path}${Platform.pathSeparator}MapTiles'); } + @override + void dispose() { + _animatedMapController.dispose(); + _controllerSearch.dispose(); + super.dispose(); + } + void _onMarkerTap(WeatherCard weatherCard) { setState(() { _selectedWeatherCard = weatherCard; @@ -56,30 +74,52 @@ class _MapWeatherState extends State with TickerProviderStateMixin { _isCardVisible = false; }); }); + _focusNode.unfocus(); + } + + Widget _buidStyleMarkers(int weathercode, String time, String sunrise, + String sunset, double temperature2M) { + return Card( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + statusWeather.getImageNow( + weathercode, + time, + sunrise, + sunset, + ), + scale: 18, + ), + const MaxGap(5), + Text( + statusData + .getDegree(roundDegree ? temperature2M.round() : temperature2M), + style: context.textTheme.labelLarge?.copyWith( + fontWeight: FontWeight.bold, + fontSize: 16, + ), + ), + ], + ), + ); } Marker _buildMainLocationMarker( WeatherCard weatherCard, int hourOfDay, int dayOfNow) { return Marker( - height: 40, - width: 40, + height: 50, + width: 100, point: LatLng(weatherCard.lat!, weatherCard.lon!), child: GestureDetector( onTap: () => _onMarkerTap(weatherCard), - child: Container( - decoration: BoxDecoration( - color: context.theme.colorScheme.onSecondary, - shape: BoxShape.circle, - ), - child: Image.asset( - statusWeather.getImageNow( - weatherCard.weathercode![hourOfDay], - weatherCard.time![hourOfDay], - weatherCard.sunrise![dayOfNow], - weatherCard.sunset![dayOfNow], - ), - scale: 15, - ), + child: _buidStyleMarkers( + weatherCard.weathercode![hourOfDay], + weatherCard.time![hourOfDay], + weatherCard.sunrise![dayOfNow], + weatherCard.sunset![dayOfNow], + weatherCard.temperature2M![hourOfDay], ), ), ); @@ -87,29 +127,22 @@ class _MapWeatherState extends State with TickerProviderStateMixin { Marker _buildCardMarker(WeatherCard weatherCardList) { return Marker( - height: 40, - width: 40, + height: 50, + width: 100, point: LatLng(weatherCardList.lat!, weatherCardList.lon!), child: GestureDetector( onTap: () => _onMarkerTap(weatherCardList), - child: Container( - decoration: BoxDecoration( - color: context.theme.colorScheme.onSecondary, - shape: BoxShape.circle, - ), - child: Image.asset( - statusWeather.getImageNow( - weatherCardList.weathercode![weatherController.getTime( - weatherCardList.time!, weatherCardList.timezone!)], - weatherCardList.time![weatherController.getTime( - weatherCardList.time!, weatherCardList.timezone!)], - weatherCardList.sunrise![weatherController.getDay( - weatherCardList.timeDaily!, weatherCardList.timezone!)], - weatherCardList.sunset![weatherController.getDay( - weatherCardList.timeDaily!, weatherCardList.timezone!)], - ), - scale: 15, - ), + child: _buidStyleMarkers( + weatherCardList.weathercode![weatherController.getTime( + weatherCardList.time!, weatherCardList.timezone!)], + weatherCardList.time![weatherController.getTime( + weatherCardList.time!, weatherCardList.timezone!)], + weatherCardList.sunrise![weatherController.getDay( + weatherCardList.timeDaily!, weatherCardList.timezone!)], + weatherCardList.sunset![weatherController.getDay( + weatherCardList.timeDaily!, weatherCardList.timezone!)], + weatherCardList.temperature2M![weatherController.getTime( + weatherCardList.time!, weatherCardList.timezone!)], ), ), ); @@ -180,71 +213,152 @@ class _MapWeatherState extends State with TickerProviderStateMixin { final cacheStore = snapshot.data!; - return FlutterMap( - mapController: _animatedMapController.mapController, - options: MapOptions( - backgroundColor: context.theme.scaffoldBackgroundColor, - initialCenter: LatLng(mainLocation.lat!, mainLocation.lon!), - initialZoom: 12, - cameraConstraint: CameraConstraint.contain( - bounds: LatLngBounds( - const LatLng(-90, -180), - const LatLng(90, 180), - ), - ), - onTap: (_, __) => _hideCard(), - onLongPress: (tapPosition, point) => showModalBottomSheet( - context: context, - isScrollControlled: true, - enableDrag: false, - builder: (BuildContext context) => CreateWeatherCard( - latitude: '${point.latitude}', - longitude: '${point.longitude}', - ), - ), - ), + return Stack( children: [ - if (_isDarkMode) - ColorFiltered( - colorFilter: const ColorFilter.matrix([ - -0.2126, -0.7152, -0.0722, 0, 255, // Red channel - -0.2126, -0.7152, -0.0722, 0, 255, // Green channel - -0.2126, -0.7152, -0.0722, 0, 255, // Blue channel - 0, 0, 0, 1, 0, // Alpha channel - ]), - child: _buildMapTileLayer(cacheStore), - ) - else - _buildMapTileLayer(cacheStore), - RichAttributionWidget( - animationConfig: const ScaleRAWA(), - attributions: [ - TextSourceAttribution( - 'OpenStreetMap contributors', - onTap: () => weatherController - .urlLauncher('https://openstreetmap.org/copyright'), + FlutterMap( + mapController: _animatedMapController.mapController, + options: MapOptions( + backgroundColor: context.theme.scaffoldBackgroundColor, + initialCenter: LatLng(mainLocation.lat!, mainLocation.lon!), + initialZoom: 12, + cameraConstraint: CameraConstraint.contain( + bounds: LatLngBounds( + const LatLng(-90, -180), + const LatLng(90, 180), + ), ), + onTap: (_, __) => _hideCard(), + onLongPress: (tapPosition, point) => showModalBottomSheet( + context: context, + isScrollControlled: true, + enableDrag: false, + builder: (BuildContext context) => CreateWeatherCard( + latitude: '${point.latitude}', + longitude: '${point.longitude}', + ), + ), + ), + children: [ + if (_isDarkMode) + ColorFiltered( + colorFilter: const ColorFilter.matrix([ + -0.2126, -0.7152, -0.0722, 0, 255, // Red channel + -0.2126, -0.7152, -0.0722, 0, 255, // Green channel + -0.2126, -0.7152, -0.0722, 0, 255, // Blue channel + 0, 0, 0, 1, 0, // Alpha channel + ]), + child: _buildMapTileLayer(cacheStore), + ) + else + _buildMapTileLayer(cacheStore), + RichAttributionWidget( + animationConfig: const ScaleRAWA(), + attributions: [ + TextSourceAttribution( + 'OpenStreetMap contributors', + onTap: () => weatherController + .urlLauncher('https://openstreetmap.org/copyright'), + ), + ], + ), + Obx(() { + final mainMarker = _buildMainLocationMarker( + WeatherCard.fromJson({ + ...mainWeather.toJson(), + ...mainLocation.toJson(), + }), + hourOfDay, + dayOfNow, + ); + + final cardMarkers = weatherController.weatherCards + .map((weatherCardList) => + _buildCardMarker(weatherCardList)) + .toList(); + + return MarkerLayer( + markers: [mainMarker, ...cardMarkers], + ); + }), + _buildWeatherCard(), ], ), - Obx(() { - final mainMarker = _buildMainLocationMarker( - WeatherCard.fromJson({ - ...mainWeather.toJson(), - ...mainLocation.toJson(), - }), - hourOfDay, - dayOfNow, - ); - - final cardMarkers = weatherController.weatherCards - .map((weatherCardList) => _buildCardMarker(weatherCardList)) - .toList(); - - return MarkerLayer( - markers: [mainMarker, ...cardMarkers], - ); - }), - _buildWeatherCard(), + RawAutocomplete( + focusNode: _focusNode, + textEditingController: _controllerSearch, + fieldViewBuilder: (BuildContext context, + TextEditingController fieldTextEditingController, + FocusNode fieldFocusNode, + VoidCallback onFieldSubmitted) { + return MyTextForm( + labelText: 'search'.tr, + type: TextInputType.text, + icon: const Icon(IconsaxPlusLinear.global_search), + controller: _controllerSearch, + margin: const EdgeInsets.only(left: 10, right: 10, top: 10), + focusNode: _focusNode, + onChanged: (value) => setState(() {}), + iconButton: _controllerSearch.text.isNotEmpty + ? IconButton( + onPressed: () { + _controllerSearch.clear(); + }, + icon: const Icon( + IconsaxPlusLinear.close_circle, + color: Colors.grey, + size: 20, + ), + ) + : null, + ); + }, + optionsBuilder: (TextEditingValue textEditingValue) { + if (textEditingValue.text.isEmpty) { + return const Iterable.empty(); + } + return WeatherAPI().getCity(textEditingValue.text, locale); + }, + onSelected: (Result selection) { + _animatedMapController.mapController + .move(LatLng(selection.latitude, selection.longitude), 12); + _controllerSearch.clear(); + _focusNode.unfocus(); + }, + displayStringForOption: (Result option) => + '${option.name}, ${option.admin1}', + optionsViewBuilder: (BuildContext context, + AutocompleteOnSelected onSelected, + Iterable options) { + return Padding( + padding: + const EdgeInsets.symmetric(horizontal: 10, vertical: 5), + child: Align( + alignment: Alignment.topCenter, + child: Material( + borderRadius: BorderRadius.circular(20), + elevation: 4.0, + child: ListView.builder( + padding: EdgeInsets.zero, + shrinkWrap: true, + itemCount: options.length, + itemBuilder: (BuildContext context, int index) { + final Result option = options.elementAt(index); + return InkWell( + onTap: () => onSelected(option), + child: ListTile( + title: Text( + '${option.name}, ${option.admin1}', + style: context.textTheme.labelLarge, + ), + ), + ); + }, + ), + ), + ), + ); + }, + ), ], ); }, From 88a7bafffb72d5c11c9d09fabee38932ec26876a Mon Sep 17 00:00:00 2001 From: Yoshi Date: Tue, 20 Aug 2024 22:19:02 +0300 Subject: [PATCH 14/41] Add clear cache --- assets/icons/Search.png | Bin 40608 -> 0 bytes lib/app/modules/geolocation.dart | 87 ++++++++++++++++++-- lib/app/modules/map/view/map.dart | 10 +-- lib/app/modules/settings/view/settings.dart | 45 ++++++++++ lib/translation/bn_in.dart | 4 + lib/translation/cs_cz.dart | 4 + lib/translation/da_dk.dart | 4 + lib/translation/de_de.dart | 5 ++ lib/translation/en_us.dart | 3 + lib/translation/es_es.dart | 5 ++ lib/translation/fa_ir.dart | 5 ++ lib/translation/fr_fr.dart | 4 + lib/translation/ga_ie.dart | 5 ++ lib/translation/hi_in.dart | 4 + lib/translation/hu_hu.dart | 4 + lib/translation/it_it.dart | 4 + lib/translation/ka_ge.dart | 5 ++ lib/translation/ko_kr.dart | 4 + lib/translation/nl_nl.dart | 4 + lib/translation/pl_pl.dart | 5 ++ lib/translation/pt_br.dart | 4 + lib/translation/ro_ro.dart | 4 + lib/translation/ru_ru.dart | 3 + lib/translation/sk_sk.dart | 5 ++ lib/translation/tr_tr.dart | 5 ++ lib/translation/ur_pk.dart | 4 + lib/translation/zh_ch.dart | 4 + lib/translation/zh_tw.dart | 4 + 28 files changed, 234 insertions(+), 10 deletions(-) delete mode 100644 assets/icons/Search.png diff --git a/assets/icons/Search.png b/assets/icons/Search.png deleted file mode 100644 index 5d42616eb7cbf9462d96fa9e862a81081d76750f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40608 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 s*wcck{&`472->0n{ZIS)|2XGNvf@*Def { final _controllerCity = TextEditingController(); final _controllerDistrict = TextEditingController(); + static const colorFilter = ColorFilter.matrix([ + -0.2, -0.7, -0.08, 0, 255, // Red channel + -0.2, -0.7, -0.08, 0, 255, // Green channel + -0.2, -0.7, -0.08, 0, 255, // Blue channel + 0, 0, 0, 1, 0, // Alpha channel + ]); + + final bool _isDarkMode = Get.theme.brightness == Brightness.dark; + + final mapController = MapController(); + textTrim(value) { value.text = value.text.trim(); while (value.text.contains(' ')) { @@ -59,6 +72,19 @@ class _SelectGeolocationState extends State { setState(() {}); } + void fillMap(double latitude, double longitude) { + _controllerLat.text = '$latitude'; + _controllerLon.text = '$longitude'; + setState(() {}); + } + + Widget _buildMapTileLayer() { + return TileLayer( + urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', + userAgentPackageName: 'com.darkmoonight.rain', + ); + } + @override Widget build(BuildContext context) { const kTextFieldElevation = 4.0; @@ -103,13 +129,63 @@ class _SelectGeolocationState extends State { child: SingleChildScrollView( child: Column( children: [ - Image.asset( - 'assets/icons/Search.png', - scale: 7, - ), Padding( padding: const EdgeInsets.symmetric( - vertical: 5, horizontal: 10), + horizontal: 10), + child: ClipRRect( + borderRadius: const BorderRadius.all( + Radius.circular(20), + ), + child: SizedBox( + height: Get.size.height * 0.3, + child: FlutterMap( + mapController: mapController, + options: MapOptions( + backgroundColor: + context.theme.colorScheme.surface, + initialCenter: const LatLng( + 55.7522, + 37.6156, + ), + initialZoom: 3, + cameraConstraint: + CameraConstraint.contain( + bounds: LatLngBounds( + const LatLng(-90, -180), + const LatLng(90, 180), + ), + ), + onLongPress: (tapPosition, point) => + fillMap(point.latitude, + point.longitude), + ), + children: [ + if (_isDarkMode) + ColorFiltered( + colorFilter: colorFilter, + child: _buildMapTileLayer(), + ) + else + _buildMapTileLayer(), + RichAttributionWidget( + animationConfig: const ScaleRAWA(), + attributions: [ + TextSourceAttribution( + 'OpenStreetMap contributors', + onTap: () => weatherController + .urlLauncher( + 'https://openstreetmap.org/copyright'), + ), + ], + ), + ], + ), + ), + ), + ), + Padding( + padding: + const EdgeInsets.fromLTRB(10, 15, 10, 5), child: Text( 'searchMethod'.tr, style: context.theme.textTheme.bodyLarge @@ -162,6 +238,7 @@ class _SelectGeolocationState extends State { return Padding( padding: const EdgeInsets.symmetric( horizontal: 10, + vertical: 5, ), child: Align( alignment: Alignment.topCenter, diff --git a/lib/app/modules/map/view/map.dart b/lib/app/modules/map/view/map.dart index 5a0e0fd..ea4561c 100644 --- a/lib/app/modules/map/view/map.dart +++ b/lib/app/modules/map/view/map.dart @@ -218,7 +218,7 @@ class _MapWeatherState extends State with TickerProviderStateMixin { FlutterMap( mapController: _animatedMapController.mapController, options: MapOptions( - backgroundColor: context.theme.scaffoldBackgroundColor, + backgroundColor: context.theme.colorScheme.surface, initialCenter: LatLng(mainLocation.lat!, mainLocation.lon!), initialZoom: 12, cameraConstraint: CameraConstraint.contain( @@ -242,9 +242,9 @@ class _MapWeatherState extends State with TickerProviderStateMixin { if (_isDarkMode) ColorFiltered( colorFilter: const ColorFilter.matrix([ - -0.2126, -0.7152, -0.0722, 0, 255, // Red channel - -0.2126, -0.7152, -0.0722, 0, 255, // Green channel - -0.2126, -0.7152, -0.0722, 0, 255, // Blue channel + -0.2, -0.7, -0.08, 0, 255, // Red channel + -0.2, -0.7, -0.08, 0, 255, // Green channel + -0.2, -0.7, -0.08, 0, 255, // Blue channel 0, 0, 0, 1, 0, // Alpha channel ]), child: _buildMapTileLayer(cacheStore), @@ -320,7 +320,7 @@ class _MapWeatherState extends State with TickerProviderStateMixin { }, onSelected: (Result selection) { _animatedMapController.mapController - .move(LatLng(selection.latitude, selection.longitude), 12); + .move(LatLng(selection.latitude, selection.longitude), 14); _controllerSearch.clear(); _focusNode.unfocus(); }, diff --git a/lib/app/modules/settings/view/settings.dart b/lib/app/modules/settings/view/settings.dart index 609ebfa..d22f027 100644 --- a/lib/app/modules/settings/view/settings.dart +++ b/lib/app/modules/settings/view/settings.dart @@ -1,4 +1,5 @@ import 'dart:io'; +import 'package:dio_cache_interceptor_file_store/dio_cache_interceptor_file_store.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hsvcolor_picker/flutter_hsvcolor_picker.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; @@ -9,6 +10,7 @@ import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:intl/intl.dart'; import 'package:line_awesome_flutter/line_awesome_flutter.dart'; import 'package:package_info_plus/package_info_plus.dart'; +import 'package:path_provider/path_provider.dart'; import 'package:rain/app/controller/controller.dart'; import 'package:rain/app/data/weather.dart'; import 'package:rain/app/modules/settings/widgets/setting_card.dart'; @@ -827,6 +829,49 @@ class _SettingsPageState extends State { ); }, ), + SettingCard( + icon: const Icon(IconsaxPlusLinear.trash_square), + text: 'clearCacheStore'.tr, + onPressed: () => showAdaptiveDialog( + context: context, + builder: (context) => AlertDialog.adaptive( + title: Text( + 'deletedCacheStore'.tr, + style: context.textTheme.titleLarge, + ), + content: Text( + 'deletedCacheStoreQuery'.tr, + style: context.textTheme.titleMedium, + ), + actions: [ + TextButton( + onPressed: () => Get.back(), + child: Text( + 'cancel'.tr, + style: context.textTheme.titleMedium?.copyWith( + color: Colors.blueAccent, + ), + ), + ), + TextButton( + onPressed: () async { + final dir = await getTemporaryDirectory(); + final cacheStoreFuture = FileCacheStore( + '${dir.path}${Platform.pathSeparator}MapTiles'); + cacheStoreFuture.clean(); + Get.back(); + }, + child: Text( + 'delete'.tr, + style: context.textTheme.titleMedium?.copyWith( + color: Colors.red, + ), + ), + ), + ], + ), + ), + ), SettingCard( icon: const Icon(IconsaxPlusLinear.language_square), text: 'language'.tr, diff --git a/lib/translation/bn_in.dart b/lib/translation/bn_in.dart index ef70ac4..156c390 100644 --- a/lib/translation/bn_in.dart +++ b/lib/translation/bn_in.dart @@ -131,5 +131,9 @@ class BnIn { 'hourlyVariables': 'ঘণ্টায় আবহাওয়ার পরিবর্তনশীল', 'dailyVariables': 'দৈনিক আবহাওয়ার পরিবর্তনশীল', 'largeElement': 'বড় আবহাওয়া ডিসপ্লে', + 'map': 'মানচিত্র', + 'clearCacheStore': 'ক্যাশ পরিষ্কার করুন', + 'deletedCacheStore': 'ক্যাশ পরিষ্কার করা হচ্ছে', + 'deletedCacheStoreQuery': 'আপনি কি সত্যিই ক্যাশ পরিষ্কার করতে চান?', }; } diff --git a/lib/translation/cs_cz.dart b/lib/translation/cs_cz.dart index 1dcd7f9..e5cfa93 100644 --- a/lib/translation/cs_cz.dart +++ b/lib/translation/cs_cz.dart @@ -131,5 +131,9 @@ class CsCz { 'hourlyVariables': 'Hodinové meteorologické proměnné', 'dailyVariables': 'Denní meteorologické proměnné', 'largeElement': 'Velké zobrazení počasí', + 'map': 'Mapa', + 'clearCacheStore': 'Vymazat mezipaměť', + 'deletedCacheStore': 'Čištění mezipaměti', + 'deletedCacheStoreQuery': 'Opravdu chcete vymazat mezipaměť?', }; } diff --git a/lib/translation/da_dk.dart b/lib/translation/da_dk.dart index d873cc6..d4e76b7 100644 --- a/lib/translation/da_dk.dart +++ b/lib/translation/da_dk.dart @@ -132,5 +132,9 @@ class DaDk { 'hourlyVariables': 'Timevise vejrfaktorer', 'dailyVariables': 'Daglige vejrfaktorer', 'largeElement': 'Stort vejrdisplay', + 'map': 'Kort', + 'clearCacheStore': 'Ryd cache', + 'deletedCacheStore': 'Rydder cache', + 'deletedCacheStoreQuery': 'Er du sikker på, at du vil rydde cachen?', }; } diff --git a/lib/translation/de_de.dart b/lib/translation/de_de.dart index e983682..a094ada 100644 --- a/lib/translation/de_de.dart +++ b/lib/translation/de_de.dart @@ -133,5 +133,10 @@ class DeDe { 'hourlyVariables': 'Stündliche Wettervariablen', 'dailyVariables': 'Tägliche Wettervariablen', 'largeElement': 'Große Wetteranzeige', + 'map': 'Karte', + 'clearCacheStore': 'Cache leeren', + 'deletedCacheStore': 'Cache wird geleert', + 'deletedCacheStoreQuery': + 'Sind Sie sicher, dass Sie den Cache leeren möchten?', }; } diff --git a/lib/translation/en_us.dart b/lib/translation/en_us.dart index 162001e..469f244 100644 --- a/lib/translation/en_us.dart +++ b/lib/translation/en_us.dart @@ -133,5 +133,8 @@ class EnUs { 'dailyVariables': 'Daily weather variables', 'largeElement': 'Large weather display', 'map': 'Map', + 'clearCacheStore': 'Clear cache', + 'deletedCacheStore': 'Clearing the cache', + 'deletedCacheStoreQuery': 'Are you sure you want to clear the cache?', }; } diff --git a/lib/translation/es_es.dart b/lib/translation/es_es.dart index 2273902..0114a95 100644 --- a/lib/translation/es_es.dart +++ b/lib/translation/es_es.dart @@ -133,5 +133,10 @@ class EsEs { 'hourlyVariables': 'Variables meteorológicas horarias', 'dailyVariables': 'Variables meteorológicas diarias', 'largeElement': 'Visualización grande del clima', + 'map': 'Mapa', + 'clearCacheStore': 'Borrar caché', + 'deletedCacheStore': 'Borrando caché', + 'deletedCacheStoreQuery': + '¿Estás seguro de que quieres borrar el caché?', }; } diff --git a/lib/translation/fa_ir.dart b/lib/translation/fa_ir.dart index e3fbf84..2bb3019 100644 --- a/lib/translation/fa_ir.dart +++ b/lib/translation/fa_ir.dart @@ -132,5 +132,10 @@ class FaIr { 'hourlyVariables': 'متغیرهای ساعتی هواشناسی', 'dailyVariables': 'متغیرهای روزانه هواشناسی', 'largeElement': 'نمایش هواشناسی بزرگ', + 'map': 'نقشه', + 'clearCacheStore': 'پاک کردن حافظه نهان', + 'deletedCacheStore': 'در حال پاک کردن حافظه نهان', + 'deletedCacheStoreQuery': + 'آیا مطمئن هستید که می‌خواهید حافظه نهان را پاک کنید؟', }; } diff --git a/lib/translation/fr_fr.dart b/lib/translation/fr_fr.dart index 9989b5c..76a7461 100644 --- a/lib/translation/fr_fr.dart +++ b/lib/translation/fr_fr.dart @@ -133,5 +133,9 @@ class FrFr { 'hourlyVariables': 'Variables météorologiques horaires', 'dailyVariables': 'Variables météorologiques quotidiennes', 'largeElement': 'Affichage météo grand format', + 'map': 'Carte', + 'clearCacheStore': 'Effacer le cache', + 'deletedCacheStore': 'Effacement du cache', + 'deletedCacheStoreQuery': 'Êtes-vous sûr de vouloir effacer le cache?', }; } diff --git a/lib/translation/ga_ie.dart b/lib/translation/ga_ie.dart index 559972c..92ef8a2 100644 --- a/lib/translation/ga_ie.dart +++ b/lib/translation/ga_ie.dart @@ -133,5 +133,10 @@ class GaIe { 'hourlyVariables': 'Athrógacha aimsire uaireanta', 'dailyVariables': 'Athrógacha aimsire laethúla', 'largeElement': 'Taispeáint mór na haimsire', + 'map': 'Léarscáil', + 'clearCacheStore': 'Glan taisce', + 'deletedCacheStore': 'Ag glanadh an taisce', + 'deletedCacheStoreQuery': + 'An bhfuil tú cinnte gur mian leat an taisce a ghlanadh?', }; } diff --git a/lib/translation/hi_in.dart b/lib/translation/hi_in.dart index a624f6a..a5fc7d5 100644 --- a/lib/translation/hi_in.dart +++ b/lib/translation/hi_in.dart @@ -130,5 +130,9 @@ class HiIn { 'hourlyVariables': 'घंटेवार मौसम चर', 'dailyVariables': 'दैनिक मौसम चर', 'largeElement': 'बड़े मौसम का प्रदर्शन', + 'map': 'मानचित्र', + 'clearCacheStore': 'कैश साफ़ करें', + 'deletedCacheStore': 'कैश साफ़ हो रहा है', + 'deletedCacheStoreQuery': 'क्या आप वाकई कैश साफ़ करना चाहते हैं?', }; } diff --git a/lib/translation/hu_hu.dart b/lib/translation/hu_hu.dart index d54a059..fdc22ca 100644 --- a/lib/translation/hu_hu.dart +++ b/lib/translation/hu_hu.dart @@ -133,5 +133,9 @@ class HuHu { 'hourlyVariables': 'Óránkénti időjárási változók', 'dailyVariables': 'Napi időjárási változók', 'largeElement': 'Nagy méretű időjárás megjelenítése', + 'map': 'Térkép', + 'clearCacheStore': 'Gyorsítótár törlése', + 'deletedCacheStore': 'Gyorsítótár törlése folyamatban', + 'deletedCacheStoreQuery': 'Biztosan törölni szeretné a gyorsítótárat?', }; } diff --git a/lib/translation/it_it.dart b/lib/translation/it_it.dart index 505f4c3..95e5b01 100644 --- a/lib/translation/it_it.dart +++ b/lib/translation/it_it.dart @@ -133,5 +133,9 @@ class ItIt { 'hourlyVariables': 'Variabili meteorologiche orarie', 'dailyVariables': 'Variabili meteorologiche giornaliere', 'largeElement': 'Visualizzazione grande elemento meteo', + 'map': 'Mappa', + 'clearCacheStore': 'Cancella cache', + 'deletedCacheStore': 'Cancellazione della cache', + 'deletedCacheStoreQuery': 'Sei sicuro di voler cancellare la cache?', }; } diff --git a/lib/translation/ka_ge.dart b/lib/translation/ka_ge.dart index 2a8b079..26bed17 100644 --- a/lib/translation/ka_ge.dart +++ b/lib/translation/ka_ge.dart @@ -132,5 +132,10 @@ class KaGe { 'hourlyVariables': 'საათობრივი ამინდის ცვლადები', 'dailyVariables': 'ყოველდღიური ამინდის ცვლადები', 'largeElement': 'გადიდი ამინდის გამოჩენა', + 'map': 'რუკა', + 'clearCacheStore': 'ქეშის გასუფთავება', + 'deletedCacheStore': 'ქეშის გასუფთავება მიმდინარეობს', + 'deletedCacheStoreQuery': + 'დარწმუნებული ხართ, რომ გსურთ ქეშის გასუფთავება?', }; } diff --git a/lib/translation/ko_kr.dart b/lib/translation/ko_kr.dart index 30f3632..7320ab3 100644 --- a/lib/translation/ko_kr.dart +++ b/lib/translation/ko_kr.dart @@ -128,5 +128,9 @@ class KoKr { 'hourlyVariables': '시간별 날씨 변수', 'dailyVariables': '일별 날씨 변수', 'largeElement': '큰 날씨 표시', + 'map': '지도', + 'clearCacheStore': '캐시 지우기', + 'deletedCacheStore': '캐시 삭제 중', + 'deletedCacheStoreQuery': '캐시를 정말로 지우시겠습니까?', }; } diff --git a/lib/translation/nl_nl.dart b/lib/translation/nl_nl.dart index 056e623..0e9fc73 100644 --- a/lib/translation/nl_nl.dart +++ b/lib/translation/nl_nl.dart @@ -133,5 +133,9 @@ class NlNl { 'hourlyVariables': 'Uurlijkse weervariabelen', 'dailyVariables': 'Dagelijkse weervariabelen', 'largeElement': 'Groot weerbericht weergeven', + 'map': 'Kaart', + 'clearCacheStore': 'Cache wissen', + 'deletedCacheStore': 'Cache wissen', + 'deletedCacheStoreQuery': 'Weet je zeker dat je de cache wilt wissen?', }; } diff --git a/lib/translation/pl_pl.dart b/lib/translation/pl_pl.dart index 58a57eb..b3fda09 100644 --- a/lib/translation/pl_pl.dart +++ b/lib/translation/pl_pl.dart @@ -131,5 +131,10 @@ class PlPl { 'hourlyVariables': 'Godzinowe zmienne pogodowe', 'dailyVariables': 'Dzienne zmienne pogodowe', 'largeElement': 'Duże wyświetlanie pogody', + 'map': 'Mapa', + 'clearCacheStore': 'Wyczyść pamięć podręczną', + 'deletedCacheStore': 'Czyszczenie pamięci podręcznej', + 'deletedCacheStoreQuery': + 'Czy na pewno chcesz wyczyścić pamięć podręczną?', }; } diff --git a/lib/translation/pt_br.dart b/lib/translation/pt_br.dart index d36edb6..0661122 100644 --- a/lib/translation/pt_br.dart +++ b/lib/translation/pt_br.dart @@ -132,5 +132,9 @@ class PtBr { 'hourlyVariables': 'Variáveis meteorológicas horárias', 'dailyVariables': 'Variáveis meteorológicas diárias', 'largeElement': 'Exibição grande do clima', + 'map': 'Mapa', + 'clearCacheStore': 'Limpar cache', + 'deletedCacheStore': 'Limpando cache', + 'deletedCacheStoreQuery': 'Tem certeza de que deseja limpar o cache?', }; } diff --git a/lib/translation/ro_ro.dart b/lib/translation/ro_ro.dart index 5dd3d47..3b36ba6 100644 --- a/lib/translation/ro_ro.dart +++ b/lib/translation/ro_ro.dart @@ -131,5 +131,9 @@ class RoRo { 'hourlyVariables': 'Variabile meteorologice orare', 'dailyVariables': 'Variabile meteorologice zilnice', 'largeElement': 'Afișare mare a vremii', + 'map': 'Hartă', + 'clearCacheStore': 'Șterge cache-ul', + 'deletedCacheStore': 'Ștergerea cache-ului', + 'deletedCacheStoreQuery': 'Ești sigur că vrei să ștergi cache-ul?', }; } diff --git a/lib/translation/ru_ru.dart b/lib/translation/ru_ru.dart index 735d825..6118d5f 100644 --- a/lib/translation/ru_ru.dart +++ b/lib/translation/ru_ru.dart @@ -133,5 +133,8 @@ class RuRu { 'dailyVariables': 'Ежедневные погодные условия', 'largeElement': 'Отображение погоды большим элементом', 'map': 'Карта', + 'clearCacheStore': 'Очистить кэш', + 'deletedCacheStore': 'Очистка кэша', + 'deletedCacheStoreQuery': 'Вы уверены, что хотите очистить кэш?', }; } diff --git a/lib/translation/sk_sk.dart b/lib/translation/sk_sk.dart index 26f47b6..5e51dfc 100644 --- a/lib/translation/sk_sk.dart +++ b/lib/translation/sk_sk.dart @@ -131,5 +131,10 @@ class SkSk { 'hourlyVariables': 'Hodinové meteorologické premenné', 'dailyVariables': 'Denné meteorologické premenné', 'largeElement': 'Veľké zobrazenie počasia', + 'map': 'Mapa', + 'clearCacheStore': 'Vymazať vyrovnávaciu pamäť', + 'deletedCacheStore': 'Vymazávanie vyrovnávacej pamäte', + 'deletedCacheStoreQuery': + 'Ste si istí, že chcete vymazať vyrovnávaciu pamäť?', }; } diff --git a/lib/translation/tr_tr.dart b/lib/translation/tr_tr.dart index 19c6a54..1a66ee6 100644 --- a/lib/translation/tr_tr.dart +++ b/lib/translation/tr_tr.dart @@ -131,5 +131,10 @@ class TrTr { 'hourlyVariables': 'Saatlik hava değişkenleri', 'dailyVariables': 'Günlük hava değişkenleri', 'largeElement': 'Büyük hava durumu gösterimi', + 'map': 'Harita', + 'clearCacheStore': 'Önbelleği temizle', + 'deletedCacheStore': 'Önbellek temizleniyor', + 'deletedCacheStoreQuery': + 'Önbelleği temizlemek istediğinizden emin misiniz?', }; } diff --git a/lib/translation/ur_pk.dart b/lib/translation/ur_pk.dart index bfcf872..f5aa70c 100644 --- a/lib/translation/ur_pk.dart +++ b/lib/translation/ur_pk.dart @@ -132,5 +132,9 @@ class UrPk { 'hourlyVariables': 'ہر گھنٹے کے موسمی متغیرات', 'dailyVariables': 'روزانہ کے موسمی متغیرات', 'largeElement': 'بڑے موسم کا ڈسپلے', + 'map': 'نقشہ', + 'clearCacheStore': 'کیچ صاف کریں', + 'deletedCacheStore': 'کیچ صاف کی جارہی ہے', + 'deletedCacheStoreQuery': 'کیا آپ واقعی کیچ صاف کرنا چاہتے ہیں؟', }; } diff --git a/lib/translation/zh_ch.dart b/lib/translation/zh_ch.dart index 6678b68..39c9d63 100644 --- a/lib/translation/zh_ch.dart +++ b/lib/translation/zh_ch.dart @@ -127,5 +127,9 @@ class ZhCh { 'hourlyVariables': '每小时天气变量', 'dailyVariables': '每日天气变量', 'largeElement': '大天气显示', + 'map': '地图', + 'clearCacheStore': '清除缓存', + 'deletedCacheStore': '正在清除缓存', + 'deletedCacheStoreQuery': '您确定要清除缓存吗?', }; } diff --git a/lib/translation/zh_tw.dart b/lib/translation/zh_tw.dart index 68c6948..db52241 100644 --- a/lib/translation/zh_tw.dart +++ b/lib/translation/zh_tw.dart @@ -128,5 +128,9 @@ class ZhTw { 'hourlyVariables': '每小時天氣變量', 'dailyVariables': '每日天氣變量', 'largeElement': '大型天氣顯示', + 'map': '地圖', + 'clearCacheStore': '清除快取', + 'deletedCacheStore': '正在清除快取', + 'deletedCacheStoreQuery': '您確定要清除快取嗎?', }; } From d0791279a23f5750d37367b54d81a279fdc1cb74 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Wed, 21 Aug 2024 21:55:29 +0300 Subject: [PATCH 15/41] Fix animation markers --- lib/app/modules/map/view/map.dart | 90 ++++++++++++++++++------------- pubspec.lock | 6 +-- 2 files changed, 55 insertions(+), 41 deletions(-) diff --git a/lib/app/modules/map/view/map.dart b/lib/app/modules/map/view/map.dart index ea4561c..7a6a6d3 100644 --- a/lib/app/modules/map/view/map.dart +++ b/lib/app/modules/map/view/map.dart @@ -40,7 +40,8 @@ class _MapWeatherState extends State with TickerProviderStateMixin { final bool _isDarkMode = Get.theme.brightness == Brightness.dark; WeatherCard? _selectedWeatherCard; bool _isCardVisible = false; - double _cardBottomPosition = -200; + late final AnimationController _animationController; + late final Animation _offsetAnimation; final _focusNode = FocusNode(); late final TextEditingController _controllerSearch = TextEditingController(); @@ -50,28 +51,44 @@ class _MapWeatherState extends State with TickerProviderStateMixin { return FileCacheStore('${dir.path}${Platform.pathSeparator}MapTiles'); } + @override + void initState() { + _animationController = AnimationController( + duration: const Duration(milliseconds: 300), + vsync: this, + ); + + _offsetAnimation = Tween( + begin: const Offset(0.0, 1.0), + end: Offset.zero, + ).animate(CurvedAnimation( + parent: _animationController, + curve: Curves.easeInOut, + )); + super.initState(); + } + @override void dispose() { _animatedMapController.dispose(); _controllerSearch.dispose(); + _animationController.dispose(); super.dispose(); } void _onMarkerTap(WeatherCard weatherCard) { setState(() { _selectedWeatherCard = weatherCard; - _cardBottomPosition = 0; - _isCardVisible = true; }); + _animationController.forward(); + _isCardVisible = true; } void _hideCard() { - setState(() { - _cardBottomPosition = -200; - }); - Future.delayed(const Duration(milliseconds: 300), () { + _animationController.reverse().then((_) { setState(() { _isCardVisible = false; + _selectedWeatherCard = null; }); }); _focusNode.unfocus(); @@ -160,36 +177,28 @@ class _MapWeatherState extends State with TickerProviderStateMixin { } Widget _buildWeatherCard() { - return AnimatedPositioned( - duration: const Duration(milliseconds: 300), - curve: Curves.easeInOut, - left: 0, - right: 0, - bottom: _cardBottomPosition, - child: AnimatedOpacity( - opacity: _isCardVisible ? 1.0 : 0.0, - duration: const Duration(milliseconds: 300), - child: _isCardVisible - ? GestureDetector( - onTap: () => Get.to( - () => InfoWeatherCard(weatherCard: _selectedWeatherCard!), - transition: Transition.downToUp, - ), - child: WeatherCardContainer( - time: _selectedWeatherCard!.time!, - timeDaily: _selectedWeatherCard!.timeDaily!, - timeDay: _selectedWeatherCard!.sunrise!, - timeNight: _selectedWeatherCard!.sunset!, - weather: _selectedWeatherCard!.weathercode!, - degree: _selectedWeatherCard!.temperature2M!, - district: _selectedWeatherCard!.district!, - city: _selectedWeatherCard!.city!, - timezone: _selectedWeatherCard!.timezone!, - ), - ) - : const SizedBox.shrink(), - ), - ); + return _isCardVisible && _selectedWeatherCard != null + ? SlideTransition( + position: _offsetAnimation, + child: GestureDetector( + onTap: () => Get.to( + () => InfoWeatherCard(weatherCard: _selectedWeatherCard!), + transition: Transition.downToUp, + ), + child: WeatherCardContainer( + time: _selectedWeatherCard!.time!, + timeDaily: _selectedWeatherCard!.timeDaily!, + timeDay: _selectedWeatherCard!.sunrise!, + timeNight: _selectedWeatherCard!.sunset!, + weather: _selectedWeatherCard!.weathercode!, + degree: _selectedWeatherCard!.temperature2M!, + district: _selectedWeatherCard!.district!, + city: _selectedWeatherCard!.city!, + timezone: _selectedWeatherCard!.timezone!, + ), + ), + ) + : const SizedBox.shrink(); } @override @@ -280,7 +289,12 @@ class _MapWeatherState extends State with TickerProviderStateMixin { markers: [mainMarker, ...cardMarkers], ); }), - _buildWeatherCard(), + Positioned( + left: 0, + right: 0, + bottom: 0, + child: _buildWeatherCard(), + ), ], ), RawAutocomplete( diff --git a/pubspec.lock b/pubspec.lock index e2b8e42..6d6e3f2 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1195,10 +1195,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: f0c73347dfcfa5b3db8bc06e1502668265d39c08f310c29bff4e28eea9699f79 + sha256: e35a698ac302dd68e41f73250bd9517fe3ab5fa4f18fe4647a0872db61bacbab url: "https://pub.dev" source: hosted - version: "6.3.9" + version: "6.3.10" url_launcher_ios: dependency: transitive description: @@ -1369,4 +1369,4 @@ packages: version: "3.1.2" sdks: dart: ">=3.5.0 <4.0.0" - flutter: ">=3.22.0" + flutter: ">=3.24.0" From f174c0f336640757b4986813997ffb9aff8d45ec Mon Sep 17 00:00:00 2001 From: Yoshi Date: Wed, 21 Aug 2024 23:20:50 +0300 Subject: [PATCH 16/41] Add buttons to the map --- lib/app/modules/map/view/map.dart | 29 +++++++++++++++++++++++++++++ pubspec.lock | 6 +++--- pubspec.yaml | 2 +- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/lib/app/modules/map/view/map.dart b/lib/app/modules/map/view/map.dart index 7a6a6d3..0053870 100644 --- a/lib/app/modules/map/view/map.dart +++ b/lib/app/modules/map/view/map.dart @@ -76,6 +76,16 @@ class _MapWeatherState extends State with TickerProviderStateMixin { super.dispose(); } + void _resetMapOrientation({LatLng? center, double? zoom}) { + _animatedMapController.animateTo( + dest: center, + zoom: zoom, + rotation: 0, + duration: const Duration(milliseconds: 500), + curve: Curves.easeInOut, + ); + } + void _onMarkerTap(WeatherCard weatherCard) { setState(() { _selectedWeatherCard = weatherCard; @@ -262,6 +272,7 @@ class _MapWeatherState extends State with TickerProviderStateMixin { _buildMapTileLayer(cacheStore), RichAttributionWidget( animationConfig: const ScaleRAWA(), + alignment: AttributionAlignment.bottomLeft, attributions: [ TextSourceAttribution( 'OpenStreetMap contributors', @@ -289,6 +300,24 @@ class _MapWeatherState extends State with TickerProviderStateMixin { markers: [mainMarker, ...cardMarkers], ); }), + Positioned( + bottom: 15, + right: 15, + child: FloatingActionButton( + child: const Icon(IconsaxPlusLinear.gps), + onPressed: () => _resetMapOrientation( + center: LatLng(mainLocation.lat!, mainLocation.lon!), + zoom: 12), + ), + ), + Positioned( + bottom: 15, + right: 85, + child: FloatingActionButton( + child: const Icon(IconsaxPlusLinear.refresh_square_2), + onPressed: () => _resetMapOrientation(), + ), + ), Positioned( left: 0, right: 0, diff --git a/pubspec.lock b/pubspec.lock index 6d6e3f2..ef0bbd2 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1267,10 +1267,10 @@ packages: dependency: transitive description: name: vm_service - sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" url: "https://pub.dev" source: hosted - version: "14.2.4" + version: "14.2.5" watcher: dependency: transitive description: @@ -1368,5 +1368,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.5.0 <4.0.0" + dart: ">=3.5.1 <4.0.0" flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index 53f3cc1..7606d7f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -6,7 +6,7 @@ publish_to: "none" version: 1.3.4+37 environment: - sdk: ">=3.5.0 <4.0.0" + sdk: ">=3.5.1 <4.0.0" dependencies: flutter: From d5a34ea11b774273eacfb8529f9053829327506f Mon Sep 17 00:00:00 2001 From: Yoshi Date: Thu, 22 Aug 2024 22:49:37 +0300 Subject: [PATCH 17/41] Fix map --- lib/app/modules/geolocation.dart | 15 +- lib/app/modules/map/view/map.dart | 371 ++++++++++++++++-------------- pubspec.lock | 12 +- pubspec.yaml | 3 +- 4 files changed, 219 insertions(+), 182 deletions(-) diff --git a/lib/app/modules/geolocation.dart b/lib/app/modules/geolocation.dart index 6e3dc67..8f37fdb 100644 --- a/lib/app/modules/geolocation.dart +++ b/lib/app/modules/geolocation.dart @@ -80,7 +80,9 @@ class _SelectGeolocationState extends State { Widget _buildMapTileLayer() { return TileLayer( - urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', + urlTemplate: settings.language == 'ru_RU' + ? 'https://tile2.maps.2gis.com/tiles?x={x}&y={y}&z={z}' + : 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', userAgentPackageName: 'com.darkmoonight.rain', ); } @@ -171,10 +173,15 @@ class _SelectGeolocationState extends State { animationConfig: const ScaleRAWA(), attributions: [ TextSourceAttribution( - 'OpenStreetMap contributors', + settings.language == 'ru_RU' + ? '2GIS contributors' + : 'OpenStreetMap contributors', onTap: () => weatherController - .urlLauncher( - 'https://openstreetmap.org/copyright'), + .urlLauncher(settings + .language == + 'ru_RU' + ? 'https://law.2gis.ru/copyright' + : 'https://openstreetmap.org/copyright'), ), ], ), diff --git a/lib/app/modules/map/view/map.dart b/lib/app/modules/map/view/map.dart index 0053870..e3a4c8a 100644 --- a/lib/app/modules/map/view/map.dart +++ b/lib/app/modules/map/view/map.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'package:dio_cache_interceptor/dio_cache_interceptor.dart'; import 'package:dio_cache_interceptor_file_store/dio_cache_interceptor_file_store.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_expandable_fab/flutter_expandable_fab.dart'; import 'package:flutter_map/flutter_map.dart'; import 'package:flutter_map_animations/flutter_map_animations.dart'; import 'package:flutter_map_cache/flutter_map_cache.dart'; @@ -177,7 +178,9 @@ class _MapWeatherState extends State with TickerProviderStateMixin { Widget _buildMapTileLayer(CacheStore cacheStore) { return TileLayer( - urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', + urlTemplate: settings.language == 'ru_RU' + ? 'https://tile2.maps.2gis.com/tiles?x={x}&y={y}&z={z}' + : 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', userAgentPackageName: 'com.darkmoonight.rain', tileProvider: CachedTileProvider( store: cacheStore, @@ -219,192 +222,210 @@ class _MapWeatherState extends State with TickerProviderStateMixin { final hourOfDay = weatherController.hourOfDay.value; final dayOfNow = weatherController.dayOfNow.value; - return FutureBuilder( - future: _cacheStoreFuture, - builder: (context, snapshot) { - if (snapshot.connectionState == ConnectionState.waiting) { - return const Center(child: CircularProgressIndicator()); - } + return Scaffold( + body: FutureBuilder( + future: _cacheStoreFuture, + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } - if (snapshot.hasError) { - return Center(child: Text(snapshot.error.toString())); - } + if (snapshot.hasError) { + return Center(child: Text(snapshot.error.toString())); + } - final cacheStore = snapshot.data!; + final cacheStore = snapshot.data!; - return Stack( - children: [ - FlutterMap( - mapController: _animatedMapController.mapController, - options: MapOptions( - backgroundColor: context.theme.colorScheme.surface, - initialCenter: LatLng(mainLocation.lat!, mainLocation.lon!), - initialZoom: 12, - cameraConstraint: CameraConstraint.contain( - bounds: LatLngBounds( - const LatLng(-90, -180), - const LatLng(90, 180), + return Stack( + children: [ + FlutterMap( + mapController: _animatedMapController.mapController, + options: MapOptions( + backgroundColor: context.theme.colorScheme.surface, + initialCenter: LatLng(mainLocation.lat!, mainLocation.lon!), + initialZoom: 12, + cameraConstraint: CameraConstraint.contain( + bounds: LatLngBounds( + const LatLng(-90, -180), + const LatLng(90, 180), + ), + ), + onTap: (_, __) => _hideCard(), + onLongPress: (tapPosition, point) => showModalBottomSheet( + context: context, + isScrollControlled: true, + enableDrag: false, + builder: (BuildContext context) => CreateWeatherCard( + latitude: '${point.latitude}', + longitude: '${point.longitude}', + ), ), ), - onTap: (_, __) => _hideCard(), - onLongPress: (tapPosition, point) => showModalBottomSheet( - context: context, - isScrollControlled: true, - enableDrag: false, - builder: (BuildContext context) => CreateWeatherCard( - latitude: '${point.latitude}', - longitude: '${point.longitude}', + children: [ + if (_isDarkMode) + ColorFiltered( + colorFilter: const ColorFilter.matrix([ + -0.2, -0.7, -0.08, 0, 255, // Red channel + -0.2, -0.7, -0.08, 0, 255, // Green channel + -0.2, -0.7, -0.08, 0, 255, // Blue channel + 0, 0, 0, 1, 0, // Alpha channel + ]), + child: _buildMapTileLayer(cacheStore), + ) + else + _buildMapTileLayer(cacheStore), + RichAttributionWidget( + animationConfig: const ScaleRAWA(), + alignment: AttributionAlignment.bottomLeft, + attributions: [ + TextSourceAttribution( + settings.language == 'ru_RU' + ? '2GIS contributors' + : 'OpenStreetMap contributors', + onTap: () => weatherController.urlLauncher( + settings.language == 'ru_RU' + ? 'https://law.2gis.ru/copyright' + : 'https://openstreetmap.org/copyright'), + ), + ], ), - ), + Obx(() { + final mainMarker = _buildMainLocationMarker( + WeatherCard.fromJson({ + ...mainWeather.toJson(), + ...mainLocation.toJson(), + }), + hourOfDay, + dayOfNow, + ); + + final cardMarkers = weatherController.weatherCards + .map((weatherCardList) => + _buildCardMarker(weatherCardList)) + .toList(); + + return MarkerLayer( + markers: [mainMarker, ...cardMarkers], + ); + }), + Positioned( + left: 0, + right: 0, + bottom: 0, + child: _buildWeatherCard(), + ), + ], + ), + RawAutocomplete( + focusNode: _focusNode, + textEditingController: _controllerSearch, + fieldViewBuilder: (BuildContext context, + TextEditingController fieldTextEditingController, + FocusNode fieldFocusNode, + VoidCallback onFieldSubmitted) { + return MyTextForm( + labelText: 'search'.tr, + type: TextInputType.text, + icon: const Icon(IconsaxPlusLinear.global_search), + controller: _controllerSearch, + margin: const EdgeInsets.only(left: 10, right: 10, top: 10), + focusNode: _focusNode, + onChanged: (value) => setState(() {}), + iconButton: _controllerSearch.text.isNotEmpty + ? IconButton( + onPressed: () { + _controllerSearch.clear(); + }, + icon: const Icon( + IconsaxPlusLinear.close_circle, + color: Colors.grey, + size: 20, + ), + ) + : null, + ); + }, + optionsBuilder: (TextEditingValue textEditingValue) { + if (textEditingValue.text.isEmpty) { + return const Iterable.empty(); + } + return WeatherAPI().getCity(textEditingValue.text, locale); + }, + onSelected: (Result selection) { + _animatedMapController.mapController.move( + LatLng(selection.latitude, selection.longitude), 14); + _controllerSearch.clear(); + _focusNode.unfocus(); + }, + displayStringForOption: (Result option) => + '${option.name}, ${option.admin1}', + optionsViewBuilder: (BuildContext context, + AutocompleteOnSelected onSelected, + Iterable options) { + return Padding( + padding: + const EdgeInsets.symmetric(horizontal: 10, vertical: 5), + child: Align( + alignment: Alignment.topCenter, + child: Material( + borderRadius: BorderRadius.circular(20), + elevation: 4.0, + child: ListView.builder( + padding: EdgeInsets.zero, + shrinkWrap: true, + itemCount: options.length, + itemBuilder: (BuildContext context, int index) { + final Result option = options.elementAt(index); + return InkWell( + onTap: () => onSelected(option), + child: ListTile( + title: Text( + '${option.name}, ${option.admin1}', + style: context.textTheme.labelLarge, + ), + ), + ); + }, + ), + ), + ), + ); + }, + ), + ], + ); + }, + ), + floatingActionButtonLocation: ExpandableFab.location, + floatingActionButton: _isCardVisible + ? null + : ExpandableFab( + pos: ExpandableFabPos.right, + type: ExpandableFabType.up, + distance: 70, + openButtonBuilder: RotateFloatingActionButtonBuilder( + child: const Icon(IconsaxPlusLinear.menu), + fabSize: ExpandableFabSize.regular, + ), + closeButtonBuilder: DefaultFloatingActionButtonBuilder( + child: const Icon(Icons.close), + fabSize: ExpandableFabSize.regular, ), children: [ - if (_isDarkMode) - ColorFiltered( - colorFilter: const ColorFilter.matrix([ - -0.2, -0.7, -0.08, 0, 255, // Red channel - -0.2, -0.7, -0.08, 0, 255, // Green channel - -0.2, -0.7, -0.08, 0, 255, // Blue channel - 0, 0, 0, 1, 0, // Alpha channel - ]), - child: _buildMapTileLayer(cacheStore), - ) - else - _buildMapTileLayer(cacheStore), - RichAttributionWidget( - animationConfig: const ScaleRAWA(), - alignment: AttributionAlignment.bottomLeft, - attributions: [ - TextSourceAttribution( - 'OpenStreetMap contributors', - onTap: () => weatherController - .urlLauncher('https://openstreetmap.org/copyright'), - ), - ], + FloatingActionButton( + heroTag: null, + child: const Icon(IconsaxPlusLinear.gps), + onPressed: () => _resetMapOrientation( + center: LatLng(mainLocation.lat!, mainLocation.lon!), + zoom: 12), ), - Obx(() { - final mainMarker = _buildMainLocationMarker( - WeatherCard.fromJson({ - ...mainWeather.toJson(), - ...mainLocation.toJson(), - }), - hourOfDay, - dayOfNow, - ); - - final cardMarkers = weatherController.weatherCards - .map((weatherCardList) => - _buildCardMarker(weatherCardList)) - .toList(); - - return MarkerLayer( - markers: [mainMarker, ...cardMarkers], - ); - }), - Positioned( - bottom: 15, - right: 15, - child: FloatingActionButton( - child: const Icon(IconsaxPlusLinear.gps), - onPressed: () => _resetMapOrientation( - center: LatLng(mainLocation.lat!, mainLocation.lon!), - zoom: 12), - ), - ), - Positioned( - bottom: 15, - right: 85, - child: FloatingActionButton( - child: const Icon(IconsaxPlusLinear.refresh_square_2), - onPressed: () => _resetMapOrientation(), - ), - ), - Positioned( - left: 0, - right: 0, - bottom: 0, - child: _buildWeatherCard(), + FloatingActionButton( + heroTag: null, + child: const Icon(IconsaxPlusLinear.refresh_2), + onPressed: () => _resetMapOrientation(), ), ], ), - RawAutocomplete( - focusNode: _focusNode, - textEditingController: _controllerSearch, - fieldViewBuilder: (BuildContext context, - TextEditingController fieldTextEditingController, - FocusNode fieldFocusNode, - VoidCallback onFieldSubmitted) { - return MyTextForm( - labelText: 'search'.tr, - type: TextInputType.text, - icon: const Icon(IconsaxPlusLinear.global_search), - controller: _controllerSearch, - margin: const EdgeInsets.only(left: 10, right: 10, top: 10), - focusNode: _focusNode, - onChanged: (value) => setState(() {}), - iconButton: _controllerSearch.text.isNotEmpty - ? IconButton( - onPressed: () { - _controllerSearch.clear(); - }, - icon: const Icon( - IconsaxPlusLinear.close_circle, - color: Colors.grey, - size: 20, - ), - ) - : null, - ); - }, - optionsBuilder: (TextEditingValue textEditingValue) { - if (textEditingValue.text.isEmpty) { - return const Iterable.empty(); - } - return WeatherAPI().getCity(textEditingValue.text, locale); - }, - onSelected: (Result selection) { - _animatedMapController.mapController - .move(LatLng(selection.latitude, selection.longitude), 14); - _controllerSearch.clear(); - _focusNode.unfocus(); - }, - displayStringForOption: (Result option) => - '${option.name}, ${option.admin1}', - optionsViewBuilder: (BuildContext context, - AutocompleteOnSelected onSelected, - Iterable options) { - return Padding( - padding: - const EdgeInsets.symmetric(horizontal: 10, vertical: 5), - child: Align( - alignment: Alignment.topCenter, - child: Material( - borderRadius: BorderRadius.circular(20), - elevation: 4.0, - child: ListView.builder( - padding: EdgeInsets.zero, - shrinkWrap: true, - itemCount: options.length, - itemBuilder: (BuildContext context, int index) { - final Result option = options.elementAt(index); - return InkWell( - onTap: () => onSelected(option), - child: ListTile( - title: Text( - '${option.name}, ${option.admin1}', - style: context.textTheme.labelLarge, - ), - ), - ); - }, - ), - ), - ), - ); - }, - ), - ], - ); - }, ); } } diff --git a/pubspec.lock b/pubspec.lock index ef0bbd2..7f2c742 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -347,6 +347,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.0" + flutter_expandable_fab: + dependency: "direct main" + description: + name: flutter_expandable_fab + sha256: f4692d1949cda81e10ca0c3e75aea1e14e29ecc12d9328996321b96e9747a955 + url: "https://pub.dev" + source: hosted + version: "2.2.0" flutter_hsvcolor_picker: dependency: "direct main" description: @@ -441,10 +449,10 @@ packages: dependency: "direct main" description: name: flutter_timezone - sha256: "0cb5498dedfaac615c779138194052f04524c31d958fab33d378f22b6cc14686" + sha256: "06150cc6dde7a0309acc3f1c38380819ae774be4d942934c824c4fa64efadffa" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "3.0.0" flutter_web_plugins: dependency: transitive description: flutter diff --git a/pubspec.yaml b/pubspec.yaml index 7606d7f..8884446 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -33,7 +33,7 @@ dependencies: path_provider: ^2.1.4 # quick_settings: ^1.0.1 json_annotation: ^4.9.0 - flutter_timezone: ^2.1.0 + flutter_timezone: ^3.0.0 device_info_plus: ^10.1.2 package_info_plus: ^8.0.2 connectivity_plus: ^6.0.5 @@ -44,6 +44,7 @@ dependencies: line_awesome_flutter: ^3.0.1 dio_cache_interceptor: ^3.5.0 flutter_map_animations: ^0.7.1 + flutter_expandable_fab: ^2.2.0 flutter_hsvcolor_picker: ^1.5.1 scrollable_positioned_list: ^0.3.8 flutter_local_notifications: ^17.2.2 From c0c15bb811fc673301a69355739856f54d35baa5 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Thu, 22 Aug 2024 23:34:56 +0300 Subject: [PATCH 18/41] Fix ExpandableFab --- lib/app/modules/map/view/map.dart | 57 +++++++++++++++---------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/lib/app/modules/map/view/map.dart b/lib/app/modules/map/view/map.dart index e3a4c8a..402d4ba 100644 --- a/lib/app/modules/map/view/map.dart +++ b/lib/app/modules/map/view/map.dart @@ -308,6 +308,34 @@ class _MapWeatherState extends State with TickerProviderStateMixin { markers: [mainMarker, ...cardMarkers], ); }), + ExpandableFab( + pos: ExpandableFabPos.right, + type: ExpandableFabType.fan, + distance: 70, + openButtonBuilder: RotateFloatingActionButtonBuilder( + child: const Icon(IconsaxPlusLinear.menu), + fabSize: ExpandableFabSize.regular, + ), + closeButtonBuilder: DefaultFloatingActionButtonBuilder( + child: const Icon(Icons.close), + fabSize: ExpandableFabSize.regular, + ), + children: [ + FloatingActionButton( + heroTag: null, + child: const Icon(IconsaxPlusLinear.gps), + onPressed: () => _resetMapOrientation( + center: + LatLng(mainLocation.lat!, mainLocation.lon!), + zoom: 12), + ), + FloatingActionButton( + heroTag: null, + child: const Icon(IconsaxPlusLinear.refresh_2), + onPressed: () => _resetMapOrientation(), + ), + ], + ), Positioned( left: 0, right: 0, @@ -397,35 +425,6 @@ class _MapWeatherState extends State with TickerProviderStateMixin { }, ), floatingActionButtonLocation: ExpandableFab.location, - floatingActionButton: _isCardVisible - ? null - : ExpandableFab( - pos: ExpandableFabPos.right, - type: ExpandableFabType.up, - distance: 70, - openButtonBuilder: RotateFloatingActionButtonBuilder( - child: const Icon(IconsaxPlusLinear.menu), - fabSize: ExpandableFabSize.regular, - ), - closeButtonBuilder: DefaultFloatingActionButtonBuilder( - child: const Icon(Icons.close), - fabSize: ExpandableFabSize.regular, - ), - children: [ - FloatingActionButton( - heroTag: null, - child: const Icon(IconsaxPlusLinear.gps), - onPressed: () => _resetMapOrientation( - center: LatLng(mainLocation.lat!, mainLocation.lon!), - zoom: 12), - ), - FloatingActionButton( - heroTag: null, - child: const Icon(IconsaxPlusLinear.refresh_2), - onPressed: () => _resetMapOrientation(), - ), - ], - ), ); } } From 5cd6e2e6c823b79e249b1ac0f24ac6380947b48b Mon Sep 17 00:00:00 2001 From: Yoshi Date: Fri, 23 Aug 2024 07:15:37 +0300 Subject: [PATCH 19/41] Delete 2gis --- lib/app/modules/geolocation.dart | 15 ++++----------- lib/app/modules/map/view/map.dart | 14 ++++---------- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/lib/app/modules/geolocation.dart b/lib/app/modules/geolocation.dart index 8f37fdb..6e3dc67 100644 --- a/lib/app/modules/geolocation.dart +++ b/lib/app/modules/geolocation.dart @@ -80,9 +80,7 @@ class _SelectGeolocationState extends State { Widget _buildMapTileLayer() { return TileLayer( - urlTemplate: settings.language == 'ru_RU' - ? 'https://tile2.maps.2gis.com/tiles?x={x}&y={y}&z={z}' - : 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', + urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', userAgentPackageName: 'com.darkmoonight.rain', ); } @@ -173,15 +171,10 @@ class _SelectGeolocationState extends State { animationConfig: const ScaleRAWA(), attributions: [ TextSourceAttribution( - settings.language == 'ru_RU' - ? '2GIS contributors' - : 'OpenStreetMap contributors', + 'OpenStreetMap contributors', onTap: () => weatherController - .urlLauncher(settings - .language == - 'ru_RU' - ? 'https://law.2gis.ru/copyright' - : 'https://openstreetmap.org/copyright'), + .urlLauncher( + 'https://openstreetmap.org/copyright'), ), ], ), diff --git a/lib/app/modules/map/view/map.dart b/lib/app/modules/map/view/map.dart index 402d4ba..619c8a4 100644 --- a/lib/app/modules/map/view/map.dart +++ b/lib/app/modules/map/view/map.dart @@ -178,9 +178,7 @@ class _MapWeatherState extends State with TickerProviderStateMixin { Widget _buildMapTileLayer(CacheStore cacheStore) { return TileLayer( - urlTemplate: settings.language == 'ru_RU' - ? 'https://tile2.maps.2gis.com/tiles?x={x}&y={y}&z={z}' - : 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', + urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', userAgentPackageName: 'com.darkmoonight.rain', tileProvider: CachedTileProvider( store: cacheStore, @@ -279,13 +277,9 @@ class _MapWeatherState extends State with TickerProviderStateMixin { alignment: AttributionAlignment.bottomLeft, attributions: [ TextSourceAttribution( - settings.language == 'ru_RU' - ? '2GIS contributors' - : 'OpenStreetMap contributors', - onTap: () => weatherController.urlLauncher( - settings.language == 'ru_RU' - ? 'https://law.2gis.ru/copyright' - : 'https://openstreetmap.org/copyright'), + 'OpenStreetMap contributors', + onTap: () => weatherController + .urlLauncher('https://openstreetmap.org/copyright'), ), ], ), From 1ea344c69a3c0e3bdcffab986182358bddecb0cf Mon Sep 17 00:00:00 2001 From: Yoshi Date: Mon, 26 Aug 2024 21:27:15 +0300 Subject: [PATCH 20/41] Settings widget --- android/app/src/main/AndroidManifest.xml | 35 +++++++++++++++++------- pubspec.lock | 4 +-- pubspec.yaml | 2 +- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 1cd4187..1934665 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -11,16 +11,6 @@ android:name="${applicationName}" android:icon="@mipmap/ic_launcher" android:extractNativeLibs="true"> - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/pubspec.lock b/pubspec.lock index 7f2c742..e9661e1 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -854,10 +854,10 @@ packages: dependency: transitive description: name: mime - sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" + sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a" url: "https://pub.dev" source: hosted - version: "1.0.5" + version: "1.0.6" nm: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 8884446..6c9d2f4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,7 +3,7 @@ description: Weather application publish_to: "none" -version: 1.3.4+37 +version: 1.3.5+38 environment: sdk: ">=3.5.1 <4.0.0" From 1d7cbbd1bf05e5cc7ecf77cf56a4f7dfec6b3738 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Wed, 28 Aug 2024 21:52:42 +0300 Subject: [PATCH 21/41] Fix map and add new button --- lib/app/modules/geolocation.dart | 5 +++++ lib/app/modules/map/view/map.dart | 34 +++++++++++++++++++++++++------ pubspec.yaml | 4 ++-- 3 files changed, 35 insertions(+), 8 deletions(-) diff --git a/lib/app/modules/geolocation.dart b/lib/app/modules/geolocation.dart index 6e3dc67..1af8ca4 100644 --- a/lib/app/modules/geolocation.dart +++ b/lib/app/modules/geolocation.dart @@ -148,6 +148,11 @@ class _SelectGeolocationState extends State { 37.6156, ), initialZoom: 3, + interactionOptions: + const InteractionOptions( + flags: InteractiveFlag.all & + ~InteractiveFlag.rotate, + ), cameraConstraint: CameraConstraint.contain( bounds: LatLngBounds( diff --git a/lib/app/modules/map/view/map.dart b/lib/app/modules/map/view/map.dart index 619c8a4..1c6a792 100644 --- a/lib/app/modules/map/view/map.dart +++ b/lib/app/modules/map/view/map.dart @@ -38,11 +38,15 @@ class _MapWeatherState extends State with TickerProviderStateMixin { final statusData = StatusData(); final Future _cacheStoreFuture = _getCacheStore(); + final GlobalKey _fabKey = GlobalKey(); + final bool _isDarkMode = Get.theme.brightness == Brightness.dark; WeatherCard? _selectedWeatherCard; bool _isCardVisible = false; late final AnimationController _animationController; late final Animation _offsetAnimation; + static const _useTransformerId = 'useTransformerId'; + final bool _useTransformer = true; final _focusNode = FocusNode(); late final TextEditingController _controllerSearch = TextEditingController(); @@ -79,6 +83,7 @@ class _MapWeatherState extends State with TickerProviderStateMixin { void _resetMapOrientation({LatLng? center, double? zoom}) { _animatedMapController.animateTo( + customId: _useTransformer ? _useTransformerId : null, dest: center, zoom: zoom, rotation: 0, @@ -93,6 +98,10 @@ class _MapWeatherState extends State with TickerProviderStateMixin { }); _animationController.forward(); _isCardVisible = true; + + if (_fabKey.currentState?.isOpen == true) { + _fabKey.currentState?.toggle(); + } } void _hideCard() { @@ -241,7 +250,10 @@ class _MapWeatherState extends State with TickerProviderStateMixin { options: MapOptions( backgroundColor: context.theme.colorScheme.surface, initialCenter: LatLng(mainLocation.lat!, mainLocation.lon!), - initialZoom: 12, + initialZoom: 8, + interactionOptions: const InteractionOptions( + flags: InteractiveFlag.all & ~InteractiveFlag.rotate, + ), cameraConstraint: CameraConstraint.contain( bounds: LatLngBounds( const LatLng(-90, -180), @@ -303,8 +315,9 @@ class _MapWeatherState extends State with TickerProviderStateMixin { ); }), ExpandableFab( + key: _fabKey, pos: ExpandableFabPos.right, - type: ExpandableFabType.fan, + type: ExpandableFabType.up, distance: 70, openButtonBuilder: RotateFloatingActionButtonBuilder( child: const Icon(IconsaxPlusLinear.menu), @@ -317,16 +330,25 @@ class _MapWeatherState extends State with TickerProviderStateMixin { children: [ FloatingActionButton( heroTag: null, - child: const Icon(IconsaxPlusLinear.gps), + child: const Icon(IconsaxPlusLinear.home_2), onPressed: () => _resetMapOrientation( center: LatLng(mainLocation.lat!, mainLocation.lon!), - zoom: 12), + zoom: 8), ), FloatingActionButton( heroTag: null, - child: const Icon(IconsaxPlusLinear.refresh_2), - onPressed: () => _resetMapOrientation(), + child: const Icon(IconsaxPlusLinear.search_zoom_out_1), + onPressed: () => _animatedMapController.animatedZoomOut( + customId: _useTransformer ? _useTransformerId : null, + ), + ), + FloatingActionButton( + heroTag: null, + child: const Icon(IconsaxPlusLinear.search_zoom_in), + onPressed: () => _animatedMapController.animatedZoomIn( + customId: _useTransformer ? _useTransformerId : null, + ), ), ], ), diff --git a/pubspec.yaml b/pubspec.yaml index 6c9d2f4..7a74f30 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -50,7 +50,7 @@ dependencies: flutter_local_notifications: ^17.2.2 internet_connection_checker_plus: ^2.5.1 dio_cache_interceptor_file_store: ^1.2.2 - isar: + isar: version: ^3.1.8 hosted: https://pub.isar-community.dev/ isar_flutter_libs: @@ -74,7 +74,7 @@ dev_dependencies: json_serializable: ^6.8.0 flutter_native_splash: ^2.4.1 flutter_launcher_icons: ^0.13.1 - isar_generator: + isar_generator: version: ^3.1.8 hosted: https://pub.isar-community.dev/ From 55e813749ab69cbc6cc489077c34d8b656cb5f60 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Thu, 29 Aug 2024 22:00:08 +0300 Subject: [PATCH 22/41] Fix widget --- lib/app/modules/settings/view/settings.dart | 14 ++++++++++++++ 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 | 4 ++-- pubspec.yaml | 2 +- 27 files changed, 65 insertions(+), 3 deletions(-) diff --git a/lib/app/modules/settings/view/settings.dart b/lib/app/modules/settings/view/settings.dart index d22f027..29ae59f 100644 --- a/lib/app/modules/settings/view/settings.dart +++ b/lib/app/modules/settings/view/settings.dart @@ -6,6 +6,7 @@ import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:gap/gap.dart'; import 'package:geolocator/geolocator.dart'; import 'package:get/get.dart'; +import 'package:home_widget/home_widget.dart'; import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:intl/intl.dart'; import 'package:line_awesome_flutter/line_awesome_flutter.dart'; @@ -638,6 +639,19 @@ class _SettingsPageState extends State { ), ), ), + SettingCard( + elevation: 4, + icon: const Icon(IconsaxPlusLinear.add_square), + text: 'addWidget'.tr, + onPressed: () { + HomeWidget.requestPinWidget( + name: androidWidgetName, + androidName: androidWidgetName, + qualifiedAndroidName: + 'com.yoshi.rain.OreoWidget', + ); + }, + ), SettingCard( elevation: 4, icon: diff --git a/lib/translation/bn_in.dart b/lib/translation/bn_in.dart index 156c390..593f9c5 100644 --- a/lib/translation/bn_in.dart +++ b/lib/translation/bn_in.dart @@ -135,5 +135,7 @@ class BnIn { 'clearCacheStore': 'ক্যাশ পরিষ্কার করুন', 'deletedCacheStore': 'ক্যাশ পরিষ্কার করা হচ্ছে', 'deletedCacheStoreQuery': 'আপনি কি সত্যিই ক্যাশ পরিষ্কার করতে চান?', + 'addWidget': 'উইজেট যোগ করুন', + 'hideMap': 'মানচিত্র লুকান', }; } diff --git a/lib/translation/cs_cz.dart b/lib/translation/cs_cz.dart index e5cfa93..35827d6 100644 --- a/lib/translation/cs_cz.dart +++ b/lib/translation/cs_cz.dart @@ -135,5 +135,7 @@ class CsCz { 'clearCacheStore': 'Vymazat mezipaměť', 'deletedCacheStore': 'Čištění mezipaměti', 'deletedCacheStoreQuery': 'Opravdu chcete vymazat mezipaměť?', + 'addWidget': 'Přidat widget', + 'hideMap': 'Skrýt mapu', }; } diff --git a/lib/translation/da_dk.dart b/lib/translation/da_dk.dart index d4e76b7..b522fad 100644 --- a/lib/translation/da_dk.dart +++ b/lib/translation/da_dk.dart @@ -136,5 +136,7 @@ class DaDk { 'clearCacheStore': 'Ryd cache', 'deletedCacheStore': 'Rydder cache', 'deletedCacheStoreQuery': 'Er du sikker på, at du vil rydde cachen?', + 'addWidget': 'Tilføj widget', + 'hideMap': 'Skjul kort', }; } diff --git a/lib/translation/de_de.dart b/lib/translation/de_de.dart index a094ada..7f90779 100644 --- a/lib/translation/de_de.dart +++ b/lib/translation/de_de.dart @@ -138,5 +138,7 @@ class DeDe { 'deletedCacheStore': 'Cache wird geleert', 'deletedCacheStoreQuery': 'Sind Sie sicher, dass Sie den Cache leeren möchten?', + 'addWidget': 'Widget hinzufügen', + 'hideMap': 'Karte ausblenden', }; } diff --git a/lib/translation/en_us.dart b/lib/translation/en_us.dart index 469f244..705aa51 100644 --- a/lib/translation/en_us.dart +++ b/lib/translation/en_us.dart @@ -136,5 +136,7 @@ class EnUs { 'clearCacheStore': 'Clear cache', 'deletedCacheStore': 'Clearing the cache', 'deletedCacheStoreQuery': 'Are you sure you want to clear the cache?', + 'addWidget': 'Add widget', + 'hideMap': 'Hide map', }; } diff --git a/lib/translation/es_es.dart b/lib/translation/es_es.dart index 0114a95..4519b07 100644 --- a/lib/translation/es_es.dart +++ b/lib/translation/es_es.dart @@ -138,5 +138,7 @@ class EsEs { 'deletedCacheStore': 'Borrando caché', 'deletedCacheStoreQuery': '¿Estás seguro de que quieres borrar el caché?', + 'addWidget': 'Agregar widget', + 'hideMap': 'Ocultar mapa', }; } diff --git a/lib/translation/fa_ir.dart b/lib/translation/fa_ir.dart index 2bb3019..82629b7 100644 --- a/lib/translation/fa_ir.dart +++ b/lib/translation/fa_ir.dart @@ -137,5 +137,7 @@ class FaIr { 'deletedCacheStore': 'در حال پاک کردن حافظه نهان', 'deletedCacheStoreQuery': 'آیا مطمئن هستید که می‌خواهید حافظه نهان را پاک کنید؟', + 'addWidget': 'افزودن ویجت', + 'hideMap': 'پنهان کردن نقشه', }; } diff --git a/lib/translation/fr_fr.dart b/lib/translation/fr_fr.dart index 76a7461..972bde5 100644 --- a/lib/translation/fr_fr.dart +++ b/lib/translation/fr_fr.dart @@ -137,5 +137,7 @@ class FrFr { 'clearCacheStore': 'Effacer le cache', 'deletedCacheStore': 'Effacement du cache', 'deletedCacheStoreQuery': 'Êtes-vous sûr de vouloir effacer le cache?', + 'addWidget': 'Ajouter un widget', + 'hideMap': 'Cacher la carte', }; } diff --git a/lib/translation/ga_ie.dart b/lib/translation/ga_ie.dart index 92ef8a2..245ce1f 100644 --- a/lib/translation/ga_ie.dart +++ b/lib/translation/ga_ie.dart @@ -138,5 +138,7 @@ class GaIe { 'deletedCacheStore': 'Ag glanadh an taisce', 'deletedCacheStoreQuery': 'An bhfuil tú cinnte gur mian leat an taisce a ghlanadh?', + 'addWidget': 'Cuir giuirléid leis', + 'hideMap': 'Folaigh léarscáil', }; } diff --git a/lib/translation/hi_in.dart b/lib/translation/hi_in.dart index a5fc7d5..1e6ea7a 100644 --- a/lib/translation/hi_in.dart +++ b/lib/translation/hi_in.dart @@ -134,5 +134,7 @@ class HiIn { 'clearCacheStore': 'कैश साफ़ करें', 'deletedCacheStore': 'कैश साफ़ हो रहा है', 'deletedCacheStoreQuery': 'क्या आप वाकई कैश साफ़ करना चाहते हैं?', + 'addWidget': 'विजेट जोड़ें', + 'hideMap': 'मानचित्र छिपाएँ', }; } diff --git a/lib/translation/hu_hu.dart b/lib/translation/hu_hu.dart index fdc22ca..e5b682c 100644 --- a/lib/translation/hu_hu.dart +++ b/lib/translation/hu_hu.dart @@ -137,5 +137,7 @@ class HuHu { 'clearCacheStore': 'Gyorsítótár törlése', 'deletedCacheStore': 'Gyorsítótár törlése folyamatban', 'deletedCacheStoreQuery': 'Biztosan törölni szeretné a gyorsítótárat?', + 'addWidget': 'Widget hozzáadása', + 'hideMap': 'Térkép elrejtése', }; } diff --git a/lib/translation/it_it.dart b/lib/translation/it_it.dart index 95e5b01..78af46f 100644 --- a/lib/translation/it_it.dart +++ b/lib/translation/it_it.dart @@ -137,5 +137,7 @@ class ItIt { 'clearCacheStore': 'Cancella cache', 'deletedCacheStore': 'Cancellazione della cache', 'deletedCacheStoreQuery': 'Sei sicuro di voler cancellare la cache?', + 'addWidget': 'Aggiungi widget', + 'hideMap': 'Nascondi mappa', }; } diff --git a/lib/translation/ka_ge.dart b/lib/translation/ka_ge.dart index 26bed17..f8c1bbc 100644 --- a/lib/translation/ka_ge.dart +++ b/lib/translation/ka_ge.dart @@ -137,5 +137,7 @@ class KaGe { 'deletedCacheStore': 'ქეშის გასუფთავება მიმდინარეობს', 'deletedCacheStoreQuery': 'დარწმუნებული ხართ, რომ გსურთ ქეშის გასუფთავება?', + 'addWidget': 'ვიდჯეტის დამატება', + 'hideMap': 'რუკის დამალვა', }; } diff --git a/lib/translation/ko_kr.dart b/lib/translation/ko_kr.dart index 7320ab3..297ed63 100644 --- a/lib/translation/ko_kr.dart +++ b/lib/translation/ko_kr.dart @@ -132,5 +132,7 @@ class KoKr { 'clearCacheStore': '캐시 지우기', 'deletedCacheStore': '캐시 삭제 중', 'deletedCacheStoreQuery': '캐시를 정말로 지우시겠습니까?', + 'addWidget': '위젯 추가', + 'hideMap': '지도를 숨기기', }; } diff --git a/lib/translation/nl_nl.dart b/lib/translation/nl_nl.dart index 0e9fc73..f2fbaa9 100644 --- a/lib/translation/nl_nl.dart +++ b/lib/translation/nl_nl.dart @@ -137,5 +137,7 @@ class NlNl { 'clearCacheStore': 'Cache wissen', 'deletedCacheStore': 'Cache wissen', 'deletedCacheStoreQuery': 'Weet je zeker dat je de cache wilt wissen?', + 'addWidget': 'Widget toevoegen', + 'hideMap': 'Kaart verbergen', }; } diff --git a/lib/translation/pl_pl.dart b/lib/translation/pl_pl.dart index b3fda09..8ec4506 100644 --- a/lib/translation/pl_pl.dart +++ b/lib/translation/pl_pl.dart @@ -136,5 +136,7 @@ class PlPl { 'deletedCacheStore': 'Czyszczenie pamięci podręcznej', 'deletedCacheStoreQuery': 'Czy na pewno chcesz wyczyścić pamięć podręczną?', + 'addWidget': 'Dodaj widget', + 'hideMap': 'Ukryj mapę', }; } diff --git a/lib/translation/pt_br.dart b/lib/translation/pt_br.dart index 0661122..788a73f 100644 --- a/lib/translation/pt_br.dart +++ b/lib/translation/pt_br.dart @@ -136,5 +136,7 @@ class PtBr { 'clearCacheStore': 'Limpar cache', 'deletedCacheStore': 'Limpando cache', 'deletedCacheStoreQuery': 'Tem certeza de que deseja limpar o cache?', + 'addWidget': 'Adicionar widget', + 'hideMap': 'Ocultar mapa', }; } diff --git a/lib/translation/ro_ro.dart b/lib/translation/ro_ro.dart index 3b36ba6..ebedf86 100644 --- a/lib/translation/ro_ro.dart +++ b/lib/translation/ro_ro.dart @@ -135,5 +135,7 @@ class RoRo { 'clearCacheStore': 'Șterge cache-ul', 'deletedCacheStore': 'Ștergerea cache-ului', 'deletedCacheStoreQuery': 'Ești sigur că vrei să ștergi cache-ul?', + 'addWidget': 'Adaugă widget', + 'hideMap': 'Ascunde harta', }; } diff --git a/lib/translation/ru_ru.dart b/lib/translation/ru_ru.dart index 6118d5f..eb18357 100644 --- a/lib/translation/ru_ru.dart +++ b/lib/translation/ru_ru.dart @@ -136,5 +136,7 @@ class RuRu { 'clearCacheStore': 'Очистить кэш', 'deletedCacheStore': 'Очистка кэша', 'deletedCacheStoreQuery': 'Вы уверены, что хотите очистить кэш?', + 'addWidget': 'Добавить виджет', + 'hideMap': 'Скрыть карту', }; } diff --git a/lib/translation/sk_sk.dart b/lib/translation/sk_sk.dart index 5e51dfc..cb9392f 100644 --- a/lib/translation/sk_sk.dart +++ b/lib/translation/sk_sk.dart @@ -136,5 +136,7 @@ class SkSk { 'deletedCacheStore': 'Vymazávanie vyrovnávacej pamäte', 'deletedCacheStoreQuery': 'Ste si istí, že chcete vymazať vyrovnávaciu pamäť?', + 'addWidget': 'Pridať widget', + 'hideMap': 'Skryť mapu', }; } diff --git a/lib/translation/tr_tr.dart b/lib/translation/tr_tr.dart index 1a66ee6..03605bb 100644 --- a/lib/translation/tr_tr.dart +++ b/lib/translation/tr_tr.dart @@ -136,5 +136,7 @@ class TrTr { 'deletedCacheStore': 'Önbellek temizleniyor', 'deletedCacheStoreQuery': 'Önbelleği temizlemek istediğinizden emin misiniz?', + 'addWidget': 'Widget ekle', + 'hideMap': 'Haritayı gizle', }; } diff --git a/lib/translation/ur_pk.dart b/lib/translation/ur_pk.dart index f5aa70c..56e22f4 100644 --- a/lib/translation/ur_pk.dart +++ b/lib/translation/ur_pk.dart @@ -136,5 +136,7 @@ class UrPk { 'clearCacheStore': 'کیچ صاف کریں', 'deletedCacheStore': 'کیچ صاف کی جارہی ہے', 'deletedCacheStoreQuery': 'کیا آپ واقعی کیچ صاف کرنا چاہتے ہیں؟', + 'addWidget': 'ویجٹ شامل کریں', + 'hideMap': 'نقشہ چھپائیں', }; } diff --git a/lib/translation/zh_ch.dart b/lib/translation/zh_ch.dart index 39c9d63..07a2be7 100644 --- a/lib/translation/zh_ch.dart +++ b/lib/translation/zh_ch.dart @@ -131,5 +131,7 @@ class ZhCh { 'clearCacheStore': '清除缓存', 'deletedCacheStore': '正在清除缓存', 'deletedCacheStoreQuery': '您确定要清除缓存吗?', + 'addWidget': '添加小部件', + 'hideMap': '隐藏地图', }; } diff --git a/lib/translation/zh_tw.dart b/lib/translation/zh_tw.dart index db52241..6dc12e0 100644 --- a/lib/translation/zh_tw.dart +++ b/lib/translation/zh_tw.dart @@ -132,5 +132,7 @@ class ZhTw { 'clearCacheStore': '清除快取', 'deletedCacheStore': '正在清除快取', 'deletedCacheStoreQuery': '您確定要清除快取嗎?', + 'addWidget': '新增小工具', + 'hideMap': '隱藏地圖', }; } diff --git a/pubspec.lock b/pubspec.lock index e9661e1..21468d6 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -606,10 +606,10 @@ packages: dependency: "direct main" description: name: home_widget - sha256: "2a0fdd6267ff975bd07bedf74686bd5577200f504f5de36527ac1b56bdbe68e3" + sha256: b313e3304c0429669fddf1286e1fbf61a64b873f38ba30b3eb890ef0d7560b12 url: "https://pub.dev" source: hosted - version: "0.6.0" + version: "0.7.0" html: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 7a74f30..1b553b2 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -22,7 +22,7 @@ dependencies: timezone: ^0.9.4 geocoding: ^3.0.0 geolocator: ^13.0.1 - home_widget: ^0.6.0 + home_widget: ^0.7.0 workmanager: ^0.5.2 flutter_map: ^7.0.2 google_fonts: ^6.2.1 From 07142e25a7483ed4d948845b525ad6984ce5d936 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Fri, 30 Aug 2024 22:31:42 +0300 Subject: [PATCH 23/41] Hide map --- lib/app/data/weather.dart | 1 + lib/app/data/weather.g.dart | 179 +++++++++++++------- lib/app/modules/home.dart | 42 +++-- lib/app/modules/settings/view/settings.dart | 143 +++++++++++----- pubspec.lock | 12 +- pubspec.yaml | 3 +- 6 files changed, 263 insertions(+), 117 deletions(-) diff --git a/lib/app/data/weather.dart b/lib/app/data/weather.dart index 09d475a..c5e45db 100644 --- a/lib/app/data/weather.dart +++ b/lib/app/data/weather.dart @@ -13,6 +13,7 @@ class Settings { bool amoledTheme = false; bool roundDegree = false; bool largeElement = false; + bool hideMap = false; String? widgetBackgroundColor; String? widgetTextColor; String measurements = 'metric'; diff --git a/lib/app/data/weather.g.dart b/lib/app/data/weather.g.dart index 0b516b4..5b6ffca 100644 --- a/lib/app/data/weather.g.dart +++ b/lib/app/data/weather.g.dart @@ -27,88 +27,93 @@ const SettingsSchema = CollectionSchema( name: r'degrees', type: IsarType.string, ), - r'language': PropertySchema( + r'hideMap': PropertySchema( id: 2, + name: r'hideMap', + type: IsarType.bool, + ), + r'language': PropertySchema( + id: 3, name: r'language', type: IsarType.string, ), r'largeElement': PropertySchema( - id: 3, + id: 4, name: r'largeElement', type: IsarType.bool, ), r'location': PropertySchema( - id: 4, + id: 5, name: r'location', type: IsarType.bool, ), r'materialColor': PropertySchema( - id: 5, + id: 6, name: r'materialColor', type: IsarType.bool, ), r'measurements': PropertySchema( - id: 6, + id: 7, name: r'measurements', type: IsarType.string, ), r'notifications': PropertySchema( - id: 7, + id: 8, name: r'notifications', type: IsarType.bool, ), r'onboard': PropertySchema( - id: 8, + id: 9, name: r'onboard', type: IsarType.bool, ), r'pressure': PropertySchema( - id: 9, + id: 10, name: r'pressure', type: IsarType.string, ), r'roundDegree': PropertySchema( - id: 10, + id: 11, name: r'roundDegree', type: IsarType.bool, ), r'theme': PropertySchema( - id: 11, + id: 12, name: r'theme', type: IsarType.string, ), r'timeEnd': PropertySchema( - id: 12, + id: 13, name: r'timeEnd', type: IsarType.string, ), r'timeRange': PropertySchema( - id: 13, + id: 14, name: r'timeRange', type: IsarType.long, ), r'timeStart': PropertySchema( - id: 14, + id: 15, name: r'timeStart', type: IsarType.string, ), r'timeformat': PropertySchema( - id: 15, + id: 16, name: r'timeformat', type: IsarType.string, ), r'widgetBackgroundColor': PropertySchema( - id: 16, + id: 17, name: r'widgetBackgroundColor', type: IsarType.string, ), r'widgetTextColor': PropertySchema( - id: 17, + id: 18, name: r'widgetTextColor', type: IsarType.string, ), r'wind': PropertySchema( - id: 18, + id: 19, name: r'wind', type: IsarType.string, ) @@ -185,23 +190,24 @@ void _settingsSerialize( ) { writer.writeBool(offsets[0], object.amoledTheme); writer.writeString(offsets[1], object.degrees); - writer.writeString(offsets[2], object.language); - writer.writeBool(offsets[3], object.largeElement); - writer.writeBool(offsets[4], object.location); - writer.writeBool(offsets[5], object.materialColor); - writer.writeString(offsets[6], object.measurements); - writer.writeBool(offsets[7], object.notifications); - writer.writeBool(offsets[8], object.onboard); - 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); + writer.writeBool(offsets[2], object.hideMap); + writer.writeString(offsets[3], object.language); + writer.writeBool(offsets[4], object.largeElement); + writer.writeBool(offsets[5], object.location); + writer.writeBool(offsets[6], object.materialColor); + writer.writeString(offsets[7], object.measurements); + writer.writeBool(offsets[8], object.notifications); + writer.writeBool(offsets[9], object.onboard); + writer.writeString(offsets[10], object.pressure); + writer.writeBool(offsets[11], object.roundDegree); + writer.writeString(offsets[12], object.theme); + writer.writeString(offsets[13], object.timeEnd); + writer.writeLong(offsets[14], object.timeRange); + writer.writeString(offsets[15], object.timeStart); + writer.writeString(offsets[16], object.timeformat); + writer.writeString(offsets[17], object.widgetBackgroundColor); + writer.writeString(offsets[18], object.widgetTextColor); + writer.writeString(offsets[19], object.wind); } Settings _settingsDeserialize( @@ -213,24 +219,25 @@ Settings _settingsDeserialize( final object = Settings(); object.amoledTheme = reader.readBool(offsets[0]); object.degrees = reader.readString(offsets[1]); + object.hideMap = reader.readBool(offsets[2]); object.id = id; - object.language = reader.readStringOrNull(offsets[2]); - object.largeElement = reader.readBool(offsets[3]); - object.location = reader.readBool(offsets[4]); - object.materialColor = reader.readBool(offsets[5]); - object.measurements = reader.readString(offsets[6]); - object.notifications = reader.readBool(offsets[7]); - object.onboard = reader.readBool(offsets[8]); - 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]); + object.language = reader.readStringOrNull(offsets[3]); + object.largeElement = reader.readBool(offsets[4]); + object.location = reader.readBool(offsets[5]); + object.materialColor = reader.readBool(offsets[6]); + object.measurements = reader.readString(offsets[7]); + object.notifications = reader.readBool(offsets[8]); + object.onboard = reader.readBool(offsets[9]); + object.pressure = reader.readString(offsets[10]); + object.roundDegree = reader.readBool(offsets[11]); + object.theme = reader.readStringOrNull(offsets[12]); + object.timeEnd = reader.readStringOrNull(offsets[13]); + object.timeRange = reader.readLongOrNull(offsets[14]); + object.timeStart = reader.readStringOrNull(offsets[15]); + object.timeformat = reader.readString(offsets[16]); + object.widgetBackgroundColor = reader.readStringOrNull(offsets[17]); + object.widgetTextColor = reader.readStringOrNull(offsets[18]); + object.wind = reader.readString(offsets[19]); return object; } @@ -246,38 +253,40 @@ P _settingsDeserializeProp

( case 1: return (reader.readString(offset)) as P; case 2: - return (reader.readStringOrNull(offset)) as P; - case 3: return (reader.readBool(offset)) as P; + case 3: + return (reader.readStringOrNull(offset)) as P; case 4: return (reader.readBool(offset)) as P; case 5: return (reader.readBool(offset)) as P; case 6: - return (reader.readString(offset)) as P; - case 7: return (reader.readBool(offset)) as P; + case 7: + return (reader.readString(offset)) as P; case 8: return (reader.readBool(offset)) as P; case 9: - return (reader.readString(offset)) as P; - case 10: return (reader.readBool(offset)) as P; + case 10: + return (reader.readString(offset)) as P; case 11: - return (reader.readStringOrNull(offset)) as P; + return (reader.readBool(offset)) as P; case 12: return (reader.readStringOrNull(offset)) as P; case 13: - return (reader.readLongOrNull(offset)) as P; + return (reader.readStringOrNull(offset)) as P; case 14: - return (reader.readStringOrNull(offset)) as P; + return (reader.readLongOrNull(offset)) as P; case 15: - return (reader.readString(offset)) as P; - case 16: return (reader.readStringOrNull(offset)) as P; + case 16: + return (reader.readString(offset)) as P; case 17: return (reader.readStringOrNull(offset)) as P; case 18: + return (reader.readStringOrNull(offset)) as P; + case 19: return (reader.readString(offset)) as P; default: throw IsarError('Unknown property with id $propertyId'); @@ -513,6 +522,16 @@ extension SettingsQueryFilter }); } + QueryBuilder hideMapEqualTo( + bool value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'hideMap', + value: value, + )); + }); + } + QueryBuilder idEqualTo(Id value) { return QueryBuilder.apply(this, (query) { return query.addFilterCondition(FilterCondition.equalTo( @@ -2145,6 +2164,18 @@ extension SettingsQuerySortBy on QueryBuilder { }); } + QueryBuilder sortByHideMap() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'hideMap', Sort.asc); + }); + } + + QueryBuilder sortByHideMapDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'hideMap', Sort.desc); + }); + } + QueryBuilder sortByLanguage() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'language', Sort.asc); @@ -2377,6 +2408,18 @@ extension SettingsQuerySortThenBy }); } + QueryBuilder thenByHideMap() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'hideMap', Sort.asc); + }); + } + + QueryBuilder thenByHideMapDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'hideMap', Sort.desc); + }); + } + QueryBuilder thenById() { return QueryBuilder.apply(this, (query) { return query.addSortBy(r'id', Sort.asc); @@ -2610,6 +2653,12 @@ extension SettingsQueryWhereDistinct }); } + QueryBuilder distinctByHideMap() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'hideMap'); + }); + } + QueryBuilder distinctByLanguage( {bool caseSensitive = true}) { return QueryBuilder.apply(this, (query) { @@ -2745,6 +2794,12 @@ extension SettingsQueryProperty }); } + QueryBuilder hideMapProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'hideMap'); + }); + } + QueryBuilder languageProperty() { return QueryBuilder.apply(this, (query) { return query.addPropertyName(r'language'); diff --git a/lib/app/modules/home.dart b/lib/app/modules/home.dart index 2d97edc..a25b028 100644 --- a/lib/app/modules/home.dart +++ b/lib/app/modules/home.dart @@ -30,31 +30,43 @@ class _HomePageState extends State with TickerProviderStateMixin { final weatherController = Get.put(WeatherController()); final _controller = TextEditingController(); - final pages = [ + final List pages = [ const WeatherPage(), const ListWeatherCard(), - const MapWeather(), + if (!settings.hideMap) const MapWeather(), const SettingsPage(), ]; @override void initState() { + super.initState(); getData(); + setupTabController(); + } + + @override + void dispose() { + tabController.dispose(); + super.dispose(); + } + + void setupTabController() { tabController = TabController( initialIndex: tabIndex, length: pages.length, vsync: this, ); + tabController.animation?.addListener(() { int value = (tabController.animation!.value).round(); if (value != tabIndex) setState(() => tabIndex = value); }); + tabController.addListener(() { setState(() { tabIndex = tabController.index; }); }); - super.initState(); } void getData() async { @@ -199,10 +211,15 @@ class _HomePageState extends State with TickerProviderStateMixin { 'cities'.tr, style: textStyle, ), - 2 => Text( - 'map'.tr, - style: textStyle, - ), + 2 => settings.hideMap + ? Text( + 'settings_full'.tr, + style: textStyle, + ) + : Text( + 'map'.tr, + style: textStyle, + ), 3 => Text( 'settings_full'.tr, style: textStyle, @@ -253,11 +270,12 @@ class _HomePageState extends State with TickerProviderStateMixin { selectedIcon: const Icon(IconsaxPlusBold.buildings), label: 'cities'.tr, ), - NavigationDestination( - icon: const Icon(IconsaxPlusLinear.map), - selectedIcon: const Icon(IconsaxPlusBold.map), - label: 'map'.tr, - ), + if (!settings.hideMap) + NavigationDestination( + icon: const Icon(IconsaxPlusLinear.map), + selectedIcon: const Icon(IconsaxPlusBold.map), + label: 'map'.tr, + ), NavigationDestination( icon: const Icon(IconsaxPlusLinear.category), selectedIcon: const Icon(IconsaxPlusBold.category), diff --git a/lib/app/modules/settings/view/settings.dart b/lib/app/modules/settings/view/settings.dart index 29ae59f..9fe8ab8 100644 --- a/lib/app/modules/settings/view/settings.dart +++ b/lib/app/modules/settings/view/settings.dart @@ -18,6 +18,7 @@ import 'package:rain/app/modules/settings/widgets/setting_card.dart'; import 'package:rain/main.dart'; import 'package:rain/theme/theme_controller.dart'; import 'package:rain/utils/color_converter.dart'; +import 'package:restart_app/restart_app.dart'; class SettingsPage extends StatefulWidget { const SettingsPage({super.key}); @@ -844,47 +845,109 @@ class _SettingsPageState extends State { }, ), SettingCard( - icon: const Icon(IconsaxPlusLinear.trash_square), - text: 'clearCacheStore'.tr, - onPressed: () => showAdaptiveDialog( - context: context, - builder: (context) => AlertDialog.adaptive( - title: Text( - 'deletedCacheStore'.tr, - style: context.textTheme.titleLarge, - ), - content: Text( - 'deletedCacheStoreQuery'.tr, - style: context.textTheme.titleMedium, - ), - actions: [ - TextButton( - onPressed: () => Get.back(), - child: Text( - 'cancel'.tr, - style: context.textTheme.titleMedium?.copyWith( - color: Colors.blueAccent, - ), + icon: const Icon(IconsaxPlusLinear.map), + text: 'map'.tr, + onPressed: () { + showModalBottomSheet( + context: context, + builder: (BuildContext context) { + return Padding( + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).padding.bottom), + child: StatefulBuilder( + builder: (BuildContext context, setState) { + return SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: + const EdgeInsets.symmetric(vertical: 15), + child: Text( + 'map'.tr, + style: context.textTheme.titleLarge?.copyWith( + fontSize: 20, + ), + ), + ), + SettingCard( + elevation: 4, + icon: const Icon( + IconsaxPlusLinear.location_slash), + text: 'hideMap'.tr, + switcher: true, + value: settings.hideMap, + onChange: (value) { + settings.hideMap = value; + isar.writeTxnSync( + () => isar.settings.putSync(settings), + ); + setState(() {}); + Future.delayed( + const Duration(milliseconds: 500), + () => Restart.restartApp(), + ); + }, + ), + SettingCard( + elevation: 4, + icon: + const Icon(IconsaxPlusLinear.trash_square), + text: 'clearCacheStore'.tr, + onPressed: () => showAdaptiveDialog( + context: context, + builder: (context) => AlertDialog.adaptive( + title: Text( + 'deletedCacheStore'.tr, + style: context.textTheme.titleLarge, + ), + content: Text( + 'deletedCacheStoreQuery'.tr, + style: context.textTheme.titleMedium, + ), + actions: [ + TextButton( + onPressed: () => Get.back(), + child: Text( + 'cancel'.tr, + style: context.textTheme.titleMedium + ?.copyWith( + color: Colors.blueAccent, + ), + ), + ), + TextButton( + onPressed: () async { + final dir = + await getTemporaryDirectory(); + final cacheStoreFuture = FileCacheStore( + '${dir.path}${Platform.pathSeparator}MapTiles'); + cacheStoreFuture.clean(); + Get.back(); + }, + child: Text( + 'delete'.tr, + style: context.textTheme.titleMedium + ?.copyWith( + color: Colors.red, + ), + ), + ), + ], + ), + ), + ), + const Gap(10), + ], + ), + ); + }, ), - ), - TextButton( - onPressed: () async { - final dir = await getTemporaryDirectory(); - final cacheStoreFuture = FileCacheStore( - '${dir.path}${Platform.pathSeparator}MapTiles'); - cacheStoreFuture.clean(); - Get.back(); - }, - child: Text( - 'delete'.tr, - style: context.textTheme.titleMedium?.copyWith( - color: Colors.red, - ), - ), - ), - ], - ), - ), + ); + }, + ); + }, ), SettingCard( icon: const Icon(IconsaxPlusLinear.language_square), diff --git a/pubspec.lock b/pubspec.lock index 21468d6..393acfa 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -449,10 +449,10 @@ packages: dependency: "direct main" description: name: flutter_timezone - sha256: "06150cc6dde7a0309acc3f1c38380819ae774be4d942934c824c4fa64efadffa" + sha256: ea53c61c9152f271a5e30624a624184804947b6a733ff2b64186bb2579446892 url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "3.0.1" flutter_web_plugins: dependency: transitive description: flutter @@ -1010,6 +1010,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" + restart_app: + dependency: "direct main" + description: + name: restart_app + sha256: b37daeb1c02fcab30e19d9e30b6fdd215bd53577efd927042eb77cf6f09daadb + url: "https://pub.dev" + source: hosted + version: "1.2.1" scrollable_positioned_list: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 1b553b2..04fbe2e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -24,6 +24,7 @@ dependencies: geolocator: ^13.0.1 home_widget: ^0.7.0 workmanager: ^0.5.2 + restart_app: ^1.2.1 flutter_map: ^7.0.2 google_fonts: ^6.2.1 url_launcher: ^6.3.0 @@ -33,7 +34,7 @@ dependencies: path_provider: ^2.1.4 # quick_settings: ^1.0.1 json_annotation: ^4.9.0 - flutter_timezone: ^3.0.0 + flutter_timezone: ^3.0.1 device_info_plus: ^10.1.2 package_info_plus: ^8.0.2 connectivity_plus: ^6.0.5 From 014a52c2156b6472ef0587648fa2d69c2d18bc94 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Fri, 6 Sep 2024 22:07:50 +0300 Subject: [PATCH 24/41] Rename folders --- lib/app/api/api.dart | 2 +- lib/app/controller/controller.dart | 10 +++--- lib/app/data/{weather.dart => db.dart} | 2 +- lib/app/data/{weather.g.dart => db.g.dart} | 2 +- lib/app/{modules => ui}/geolocation.dart | 6 ++-- lib/app/{modules => ui}/home.dart | 25 +++++++-------- .../main/view/main.dart} | 32 +++++++++---------- lib/app/{modules => ui}/map/view/map.dart | 28 ++++++++-------- lib/app/{modules => ui}/onboarding.dart | 6 ++-- .../places/view/place_info.dart} | 30 ++++++++--------- .../places/view/place_list.dart} | 14 ++++---- .../places/widgets/create_place.dart} | 12 +++---- .../places/widgets/place_card.dart} | 12 +++---- .../places/widgets/place_card_list.dart} | 16 +++++----- .../settings/view/settings.dart | 8 ++--- .../settings/widgets/setting_card.dart | 0 lib/app/{ => ui}/widgets/button.dart | 0 lib/app/{ => ui}/widgets/shimmer.dart | 0 lib/app/{ => ui}/widgets/text_form.dart | 0 .../widgets/weather/daily/daily_card.dart} | 12 +++---- .../weather/daily/daily_card_info.dart} | 28 ++++++++-------- .../weather/daily/daily_card_list.dart} | 18 +++++------ .../weather/daily/daily_container.dart} | 18 +++++------ .../widgets/weather}/desc/desc.dart | 0 .../widgets/weather}/desc/desc_container.dart | 6 ++-- .../widgets/weather}/desc/message.dart | 0 .../widgets/weather/hourly.dart} | 12 +++---- .../widgets/weather/now.dart} | 12 +++---- .../widgets/weather}/status/status_data.dart | 0 .../weather}/status/status_weather.dart | 0 .../widgets/weather}/sunset_sunrise.dart | 2 +- lib/{ => app}/utils/color_converter.dart | 0 lib/{ => app}/utils/device_info.dart | 0 lib/app/{services => utils}/notification.dart | 0 .../utils.dart => utils/show_snack_bar.dart} | 0 lib/main.dart | 10 +++--- lib/theme/theme_controller.dart | 2 +- pubspec.lock | 14 ++++---- pubspec.yaml | 6 ++-- 39 files changed, 172 insertions(+), 173 deletions(-) rename lib/app/data/{weather.dart => db.dart} (99%) rename lib/app/data/{weather.g.dart => db.g.dart} (99%) rename lib/app/{modules => ui}/geolocation.dart (99%) rename lib/app/{modules => ui}/home.dart (93%) rename lib/app/{modules/main/view/weather_main.dart => ui/main/view/main.dart} (89%) rename lib/app/{modules => ui}/map/view/map.dart (95%) rename lib/app/{modules => ui}/onboarding.dart (97%) rename lib/app/{modules/cards/view/info_weather_card.dart => ui/places/view/place_info.dart} (90%) rename lib/app/{modules/cards/view/list_weather_card.dart => ui/places/view/place_list.dart} (88%) rename lib/app/{modules/cards/widgets/create_card_weather.dart => ui/places/widgets/create_place.dart} (97%) rename lib/app/{modules/cards/widgets/weather_card_container.dart => ui/places/widgets/place_card.dart} (92%) rename lib/app/{modules/cards/widgets/weather_card_list.dart => ui/places/widgets/place_card_list.dart} (89%) rename lib/app/{modules => ui}/settings/view/settings.dart (99%) rename lib/app/{modules => ui}/settings/widgets/setting_card.dart (100%) rename lib/app/{ => ui}/widgets/button.dart (100%) rename lib/app/{ => ui}/widgets/shimmer.dart (100%) rename lib/app/{ => ui}/widgets/text_form.dart (100%) rename lib/app/{widgets/daily/list_daily_card.dart => ui/widgets/weather/daily/daily_card.dart} (89%) rename lib/app/{widgets/daily/info_daily_card.dart => ui/widgets/weather/daily/daily_card_info.dart} (92%) rename lib/app/{widgets/daily/weather_more.dart => ui/widgets/weather/daily/daily_card_list.dart} (79%) rename lib/app/{widgets/daily/weather_daily.dart => ui/widgets/weather/daily/daily_container.dart} (90%) rename lib/app/{widgets => ui/widgets/weather}/desc/desc.dart (100%) rename lib/app/{widgets => ui/widgets/weather}/desc/desc_container.dart (98%) rename lib/app/{widgets => ui/widgets/weather}/desc/message.dart (100%) rename lib/app/{widgets/hourly/weather_hourly.dart => ui/widgets/weather/hourly.dart} (83%) rename lib/app/{widgets/now/weather_now.dart => ui/widgets/weather/now.dart} (94%) rename lib/app/{widgets => ui/widgets/weather}/status/status_data.dart (100%) rename lib/app/{widgets => ui/widgets/weather}/status/status_weather.dart (100%) rename lib/app/{widgets/sun_moon => ui/widgets/weather}/sunset_sunrise.dart (97%) rename lib/{ => app}/utils/color_converter.dart (100%) rename lib/{ => app}/utils/device_info.dart (100%) rename lib/app/{services => utils}/notification.dart (100%) rename lib/app/{services/utils.dart => utils/show_snack_bar.dart} (100%) diff --git a/lib/app/api/api.dart b/lib/app/api/api.dart index 2a30802..eccd99a 100644 --- a/lib/app/api/api.dart +++ b/lib/app/api/api.dart @@ -3,7 +3,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.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/app/data/db.dart'; import 'package:rain/main.dart'; class WeatherAPI { diff --git a/lib/app/controller/controller.dart b/lib/app/controller/controller.dart index 1e01069..b4e6adf 100644 --- a/lib/app/controller/controller.dart +++ b/lib/app/controller/controller.dart @@ -11,11 +11,11 @@ import 'package:isar/isar.dart'; import 'package:lat_lng_to_timezone/lat_lng_to_timezone.dart' as tzmap; import 'package:path_provider/path_provider.dart'; import 'package:rain/app/api/api.dart'; -import 'package:rain/app/data/weather.dart'; -import 'package:rain/app/services/notification.dart'; -import 'package:rain/app/services/utils.dart'; -import 'package:rain/app/widgets/status/status_data.dart'; -import 'package:rain/app/widgets/status/status_weather.dart'; +import 'package:rain/app/data/db.dart'; +import 'package:rain/app/utils/notification.dart'; +import 'package:rain/app/utils/show_snack_bar.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_data.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_weather.dart'; import 'package:rain/main.dart'; import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; import 'package:timezone/data/latest_all.dart' as tz; diff --git a/lib/app/data/weather.dart b/lib/app/data/db.dart similarity index 99% rename from lib/app/data/weather.dart rename to lib/app/data/db.dart index c5e45db..38c43f4 100644 --- a/lib/app/data/weather.dart +++ b/lib/app/data/db.dart @@ -1,6 +1,6 @@ import 'package:isar/isar.dart'; -part 'weather.g.dart'; +part 'db.g.dart'; @collection class Settings { diff --git a/lib/app/data/weather.g.dart b/lib/app/data/db.g.dart similarity index 99% rename from lib/app/data/weather.g.dart rename to lib/app/data/db.g.dart index 5b6ffca..e2dbe3b 100644 --- a/lib/app/data/weather.g.dart +++ b/lib/app/data/db.g.dart @@ -1,6 +1,6 @@ // GENERATED CODE - DO NOT MODIFY BY HAND -part of 'weather.dart'; +part of 'db.dart'; // ************************************************************************** // IsarCollectionGenerator diff --git a/lib/app/modules/geolocation.dart b/lib/app/ui/geolocation.dart similarity index 99% rename from lib/app/modules/geolocation.dart rename to lib/app/ui/geolocation.dart index 1af8ca4..cca9cbf 100644 --- a/lib/app/modules/geolocation.dart +++ b/lib/app/ui/geolocation.dart @@ -9,9 +9,9 @@ import 'package:latlong2/latlong.dart'; import 'package:rain/app/api/api.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'; -import 'package:rain/app/widgets/text_form.dart'; +import 'package:rain/app/ui/home.dart'; +import 'package:rain/app/ui/widgets/button.dart'; +import 'package:rain/app/ui/widgets/text_form.dart'; import 'package:rain/main.dart'; class SelectGeolocation extends StatefulWidget { diff --git a/lib/app/modules/home.dart b/lib/app/ui/home.dart similarity index 93% rename from lib/app/modules/home.dart rename to lib/app/ui/home.dart index a25b028..a566e77 100644 --- a/lib/app/modules/home.dart +++ b/lib/app/ui/home.dart @@ -5,14 +5,14 @@ import 'package:isar/isar.dart'; import 'package:rain/app/api/api.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_main.dart'; -import 'package:rain/app/modules/map/view/map.dart'; -import 'package:rain/app/modules/settings/view/settings.dart'; -import 'package:rain/app/services/utils.dart'; +import 'package:rain/app/data/db.dart'; +import 'package:rain/app/ui/places/view/place_list.dart'; +import 'package:rain/app/ui/places/widgets/create_place.dart'; +import 'package:rain/app/ui/geolocation.dart'; +import 'package:rain/app/ui/main/view/main.dart'; +import 'package:rain/app/ui/map/view/map.dart'; +import 'package:rain/app/ui/settings/view/settings.dart'; +import 'package:rain/app/utils/show_snack_bar.dart'; import 'package:rain/main.dart'; class HomePage extends StatefulWidget { @@ -31,9 +31,9 @@ class _HomePageState extends State with TickerProviderStateMixin { final _controller = TextEditingController(); final List pages = [ - const WeatherPage(), - const ListWeatherCard(), - if (!settings.hideMap) const MapWeather(), + const MainPage(), + const PlaceList(), + if (!settings.hideMap) const MapPage(), const SettingsPage(), ]; @@ -289,8 +289,7 @@ class _HomePageState extends State with TickerProviderStateMixin { context: context, isScrollControlled: true, enableDrag: false, - builder: (BuildContext context) => - const CreateWeatherCard(), + builder: (BuildContext context) => const CreatePlace(), ), child: const Icon( IconsaxPlusLinear.add, diff --git a/lib/app/modules/main/view/weather_main.dart b/lib/app/ui/main/view/main.dart similarity index 89% rename from lib/app/modules/main/view/weather_main.dart rename to lib/app/ui/main/view/main.dart index 4cba272..d418b0b 100644 --- a/lib/app/modules/main/view/weather_main.dart +++ b/lib/app/ui/main/view/main.dart @@ -1,24 +1,24 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:rain/app/controller/controller.dart'; -import 'package:rain/app/data/weather.dart'; -import 'package:rain/app/widgets/daily/weather_daily.dart'; -import 'package:rain/app/widgets/daily/weather_more.dart'; -import 'package:rain/app/widgets/desc/desc_container.dart'; -import 'package:rain/app/widgets/hourly/weather_hourly.dart'; -import 'package:rain/app/widgets/now/weather_now.dart'; -import 'package:rain/app/widgets/shimmer.dart'; -import 'package:rain/app/widgets/sun_moon/sunset_sunrise.dart'; +import 'package:rain/app/data/db.dart'; +import 'package:rain/app/ui/widgets/weather/daily/daily_card_list.dart'; +import 'package:rain/app/ui/widgets/weather/daily/daily_container.dart'; +import 'package:rain/app/ui/widgets/weather/desc/desc_container.dart'; +import 'package:rain/app/ui/widgets/weather/hourly.dart'; +import 'package:rain/app/ui/widgets/weather/now.dart'; +import 'package:rain/app/ui/widgets/shimmer.dart'; +import 'package:rain/app/ui/widgets/weather/sunset_sunrise.dart'; import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; -class WeatherPage extends StatefulWidget { - const WeatherPage({super.key}); +class MainPage extends StatefulWidget { + const MainPage({super.key}); @override - State createState() => _WeatherPageState(); + State createState() => _MainPageState(); } -class _WeatherPageState extends State { +class _MainPageState extends State { final weatherController = Get.put(WeatherController()); @override @@ -69,7 +69,7 @@ class _WeatherPageState extends State { return ListView( children: [ - WeatherNow( + Now( time: mainWeather.time![hourOfDay], weather: mainWeather.weathercode![hourOfDay], degree: mainWeather.temperature2M![hourOfDay], @@ -122,7 +122,7 @@ class _WeatherPageState extends State { Radius.circular(20), ), ), - child: WeatherHourly( + child: Hourly( time: mainWeather.time![i], weather: mainWeather.weathercode![i], degree: mainWeather.temperature2M![i], @@ -160,10 +160,10 @@ class _WeatherPageState extends State { initiallyExpanded: false, title: 'hourlyVariables'.tr, ), - WeatherDaily( + DailyContainer( weatherData: weatherCard, onTap: () => Get.to( - () => WeatherMore( + () => DailyCardList( weatherData: weatherCard, ), transition: Transition.downToUp, diff --git a/lib/app/modules/map/view/map.dart b/lib/app/ui/map/view/map.dart similarity index 95% rename from lib/app/modules/map/view/map.dart rename to lib/app/ui/map/view/map.dart index 1c6a792..99698a6 100644 --- a/lib/app/modules/map/view/map.dart +++ b/lib/app/ui/map/view/map.dart @@ -14,23 +14,23 @@ import 'package:path_provider/path_provider.dart'; import 'package:rain/app/api/api.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/info_weather_card.dart'; -import 'package:rain/app/modules/cards/widgets/create_card_weather.dart'; -import 'package:rain/app/modules/cards/widgets/weather_card_container.dart'; -import 'package:rain/app/widgets/status/status_data.dart'; -import 'package:rain/app/widgets/status/status_weather.dart'; -import 'package:rain/app/widgets/text_form.dart'; +import 'package:rain/app/data/db.dart'; +import 'package:rain/app/ui/places/view/place_info.dart'; +import 'package:rain/app/ui/places/widgets/create_place.dart'; +import 'package:rain/app/ui/places/widgets/place_card.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_data.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_weather.dart'; +import 'package:rain/app/ui/widgets/text_form.dart'; import 'package:rain/main.dart'; -class MapWeather extends StatefulWidget { - const MapWeather({super.key}); +class MapPage extends StatefulWidget { + const MapPage({super.key}); @override - State createState() => _MapWeatherState(); + State createState() => _MapPageState(); } -class _MapWeatherState extends State with TickerProviderStateMixin { +class _MapPageState extends State with TickerProviderStateMixin { late final AnimatedMapController _animatedMapController = AnimatedMapController(vsync: this); final weatherController = Get.put(WeatherController()); @@ -202,10 +202,10 @@ class _MapWeatherState extends State with TickerProviderStateMixin { position: _offsetAnimation, child: GestureDetector( onTap: () => Get.to( - () => InfoWeatherCard(weatherCard: _selectedWeatherCard!), + () => PlaceInfo(weatherCard: _selectedWeatherCard!), transition: Transition.downToUp, ), - child: WeatherCardContainer( + child: PlaceCard( time: _selectedWeatherCard!.time!, timeDaily: _selectedWeatherCard!.timeDaily!, timeDay: _selectedWeatherCard!.sunrise!, @@ -265,7 +265,7 @@ class _MapWeatherState extends State with TickerProviderStateMixin { context: context, isScrollControlled: true, enableDrag: false, - builder: (BuildContext context) => CreateWeatherCard( + builder: (BuildContext context) => CreatePlace( latitude: '${point.latitude}', longitude: '${point.longitude}', ), diff --git a/lib/app/modules/onboarding.dart b/lib/app/ui/onboarding.dart similarity index 97% rename from lib/app/modules/onboarding.dart rename to lib/app/ui/onboarding.dart index 07a2999..38ef116 100644 --- a/lib/app/modules/onboarding.dart +++ b/lib/app/ui/onboarding.dart @@ -1,7 +1,7 @@ import 'package:gap/gap.dart'; -import 'package:rain/app/data/weather.dart'; -import 'package:rain/app/modules/geolocation.dart'; -import 'package:rain/app/widgets/button.dart'; +import 'package:rain/app/data/db.dart'; +import 'package:rain/app/ui/geolocation.dart'; +import 'package:rain/app/ui/widgets/button.dart'; import 'package:rain/main.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; diff --git a/lib/app/modules/cards/view/info_weather_card.dart b/lib/app/ui/places/view/place_info.dart similarity index 90% rename from lib/app/modules/cards/view/info_weather_card.dart rename to lib/app/ui/places/view/place_info.dart index 8079045..c4c513b 100644 --- a/lib/app/modules/cards/view/info_weather_card.dart +++ b/lib/app/ui/places/view/place_info.dart @@ -2,27 +2,27 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:rain/app/controller/controller.dart'; -import 'package:rain/app/data/weather.dart'; -import 'package:rain/app/widgets/daily/weather_daily.dart'; -import 'package:rain/app/widgets/daily/weather_more.dart'; -import 'package:rain/app/widgets/desc/desc_container.dart'; -import 'package:rain/app/widgets/hourly/weather_hourly.dart'; -import 'package:rain/app/widgets/now/weather_now.dart'; -import 'package:rain/app/widgets/sun_moon/sunset_sunrise.dart'; +import 'package:rain/app/data/db.dart'; +import 'package:rain/app/ui/widgets/weather/daily/daily_card_list.dart'; +import 'package:rain/app/ui/widgets/weather/daily/daily_container.dart'; +import 'package:rain/app/ui/widgets/weather/desc/desc_container.dart'; +import 'package:rain/app/ui/widgets/weather/hourly.dart'; +import 'package:rain/app/ui/widgets/weather/now.dart'; +import 'package:rain/app/ui/widgets/weather/sunset_sunrise.dart'; import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; -class InfoWeatherCard extends StatefulWidget { - const InfoWeatherCard({ +class PlaceInfo extends StatefulWidget { + const PlaceInfo({ super.key, required this.weatherCard, }); final WeatherCard weatherCard; @override - State createState() => _InfoWeatherCardState(); + State createState() => _PlaceInfoState(); } -class _InfoWeatherCardState extends State { +class _PlaceInfoState extends State { int timeNow = 0; int dayNow = 0; final weatherController = Get.put(WeatherController()); @@ -87,7 +87,7 @@ class _InfoWeatherCardState extends State { padding: const EdgeInsets.symmetric(horizontal: 10), child: ListView( children: [ - WeatherNow( + Now( time: weatherCard.time![timeNow], weather: weatherCard.weathercode![timeNow], degree: weatherCard.temperature2M![timeNow], @@ -136,7 +136,7 @@ class _InfoWeatherCardState extends State { Radius.circular(20), ), ), - child: WeatherHourly( + child: Hourly( time: weatherCard.time![i], weather: weatherCard.weathercode![i], degree: weatherCard.temperature2M![i], @@ -173,10 +173,10 @@ class _InfoWeatherCardState extends State { initiallyExpanded: false, title: 'hourlyVariables'.tr, ), - WeatherDaily( + DailyContainer( weatherData: weatherCard, onTap: () => Get.to( - () => WeatherMore( + () => DailyCardList( weatherData: weatherCard, ), transition: Transition.downToUp, diff --git a/lib/app/modules/cards/view/list_weather_card.dart b/lib/app/ui/places/view/place_list.dart similarity index 88% rename from lib/app/modules/cards/view/list_weather_card.dart rename to lib/app/ui/places/view/place_list.dart index 76b6cb3..6f899b8 100644 --- a/lib/app/modules/cards/view/list_weather_card.dart +++ b/lib/app/ui/places/view/place_list.dart @@ -2,17 +2,17 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:rain/app/controller/controller.dart'; -import 'package:rain/app/modules/cards/widgets/weather_card_list.dart'; -import 'package:rain/app/widgets/text_form.dart'; +import 'package:rain/app/ui/places/widgets/place_card_list.dart'; +import 'package:rain/app/ui/widgets/text_form.dart'; -class ListWeatherCard extends StatefulWidget { - const ListWeatherCard({super.key}); +class PlaceList extends StatefulWidget { + const PlaceList({super.key}); @override - State createState() => _ListWeatherCardState(); + State createState() => _PlaceListState(); } -class _ListWeatherCardState extends State { +class _PlaceListState extends State { final weatherController = Get.put(WeatherController()); TextEditingController searchTasks = TextEditingController(); String filter = ''; @@ -95,7 +95,7 @@ class _ListWeatherCardState extends State { await weatherController.updateCacheCard(true); setState(() {}); }, - child: WeatherCardList(searchCity: filter), + child: PlaceCardList(searchCity: filter), ), ), ); diff --git a/lib/app/modules/cards/widgets/create_card_weather.dart b/lib/app/ui/places/widgets/create_place.dart similarity index 97% rename from lib/app/modules/cards/widgets/create_card_weather.dart rename to lib/app/ui/places/widgets/create_place.dart index d2d4c97..b72ec47 100644 --- a/lib/app/modules/cards/widgets/create_card_weather.dart +++ b/lib/app/ui/places/widgets/create_place.dart @@ -4,12 +4,12 @@ import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:rain/app/api/api.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'; +import 'package:rain/app/ui/widgets/button.dart'; +import 'package:rain/app/ui/widgets/text_form.dart'; import 'package:rain/main.dart'; -class CreateWeatherCard extends StatefulWidget { - const CreateWeatherCard({ +class CreatePlace extends StatefulWidget { + const CreatePlace({ super.key, this.latitude, this.longitude, @@ -18,10 +18,10 @@ class CreateWeatherCard extends StatefulWidget { final String? longitude; @override - State createState() => _CreateWeatherCardState(); + State createState() => _CreatePlaceState(); } -class _CreateWeatherCardState extends State +class _CreatePlaceState extends State with SingleTickerProviderStateMixin { bool isLoading = false; final formKey = GlobalKey(); diff --git a/lib/app/modules/cards/widgets/weather_card_container.dart b/lib/app/ui/places/widgets/place_card.dart similarity index 92% rename from lib/app/modules/cards/widgets/weather_card_container.dart rename to lib/app/ui/places/widgets/place_card.dart index 7c977b4..93a08a9 100644 --- a/lib/app/modules/cards/widgets/weather_card_container.dart +++ b/lib/app/ui/places/widgets/place_card.dart @@ -2,12 +2,12 @@ import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; import 'package:get/get.dart'; import 'package:rain/app/controller/controller.dart'; -import 'package:rain/app/widgets/status/status_weather.dart'; -import 'package:rain/app/widgets/status/status_data.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_weather.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_data.dart'; import 'package:timezone/standalone.dart' as tz; -class WeatherCardContainer extends StatefulWidget { - const WeatherCardContainer({ +class PlaceCard extends StatefulWidget { + const PlaceCard({ super.key, required this.time, required this.weather, @@ -30,10 +30,10 @@ class WeatherCardContainer extends StatefulWidget { final String timezone; @override - State createState() => _WeatherCardContainerState(); + State createState() => _PlaceCardState(); } -class _WeatherCardContainerState extends State { +class _PlaceCardState extends State { final statusWeather = StatusWeather(); final statusData = StatusData(); final weatherController = Get.put(WeatherController()); diff --git a/lib/app/modules/cards/widgets/weather_card_list.dart b/lib/app/ui/places/widgets/place_card_list.dart similarity index 89% rename from lib/app/modules/cards/widgets/weather_card_list.dart rename to lib/app/ui/places/widgets/place_card_list.dart index a0e0b88..a603f3e 100644 --- a/lib/app/modules/cards/widgets/weather_card_list.dart +++ b/lib/app/ui/places/widgets/place_card_list.dart @@ -2,21 +2,21 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:rain/app/controller/controller.dart'; -import 'package:rain/app/modules/cards/view/info_weather_card.dart'; -import 'package:rain/app/modules/cards/widgets/weather_card_container.dart'; +import 'package:rain/app/ui/places/view/place_info.dart'; +import 'package:rain/app/ui/places/widgets/place_card.dart'; -class WeatherCardList extends StatefulWidget { - const WeatherCardList({ +class PlaceCardList extends StatefulWidget { + const PlaceCardList({ super.key, required this.searchCity, }); final String searchCity; @override - State createState() => _WeatherCardListState(); + State createState() => _PlaceCardListState(); } -class _WeatherCardListState extends State { +class _PlaceCardListState extends State { final weatherController = Get.put(WeatherController()); @override @@ -90,12 +90,12 @@ class _WeatherCardListState extends State { }, child: GestureDetector( onTap: () => Get.to( - () => InfoWeatherCard( + () => PlaceInfo( weatherCard: weatherCardList, ), transition: Transition.downToUp, ), - child: WeatherCardContainer( + child: PlaceCard( time: weatherCardList.time!, timeDaily: weatherCardList.timeDaily!, timeDay: weatherCardList.sunrise!, diff --git a/lib/app/modules/settings/view/settings.dart b/lib/app/ui/settings/view/settings.dart similarity index 99% rename from lib/app/modules/settings/view/settings.dart rename to lib/app/ui/settings/view/settings.dart index 9fe8ab8..f227b62 100644 --- a/lib/app/modules/settings/view/settings.dart +++ b/lib/app/ui/settings/view/settings.dart @@ -13,11 +13,11 @@ import 'package:line_awesome_flutter/line_awesome_flutter.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:path_provider/path_provider.dart'; import 'package:rain/app/controller/controller.dart'; -import 'package:rain/app/data/weather.dart'; -import 'package:rain/app/modules/settings/widgets/setting_card.dart'; +import 'package:rain/app/data/db.dart'; +import 'package:rain/app/ui/settings/widgets/setting_card.dart'; import 'package:rain/main.dart'; import 'package:rain/theme/theme_controller.dart'; -import 'package:rain/utils/color_converter.dart'; +import 'package:rain/app/utils/color_converter.dart'; import 'package:restart_app/restart_app.dart'; class SettingsPage extends StatefulWidget { @@ -1124,7 +1124,7 @@ class _SettingsPageState extends State { icon: const Icon(IconsaxPlusLinear.document), text: 'license'.tr, onPressed: () => Get.to( - LicensePage( + () => LicensePage( applicationIcon: Container( width: 100, height: 100, diff --git a/lib/app/modules/settings/widgets/setting_card.dart b/lib/app/ui/settings/widgets/setting_card.dart similarity index 100% rename from lib/app/modules/settings/widgets/setting_card.dart rename to lib/app/ui/settings/widgets/setting_card.dart diff --git a/lib/app/widgets/button.dart b/lib/app/ui/widgets/button.dart similarity index 100% rename from lib/app/widgets/button.dart rename to lib/app/ui/widgets/button.dart diff --git a/lib/app/widgets/shimmer.dart b/lib/app/ui/widgets/shimmer.dart similarity index 100% rename from lib/app/widgets/shimmer.dart rename to lib/app/ui/widgets/shimmer.dart diff --git a/lib/app/widgets/text_form.dart b/lib/app/ui/widgets/text_form.dart similarity index 100% rename from lib/app/widgets/text_form.dart rename to lib/app/ui/widgets/text_form.dart diff --git a/lib/app/widgets/daily/list_daily_card.dart b/lib/app/ui/widgets/weather/daily/daily_card.dart similarity index 89% rename from lib/app/widgets/daily/list_daily_card.dart rename to lib/app/ui/widgets/weather/daily/daily_card.dart index e8c8ef3..ca519a5 100644 --- a/lib/app/widgets/daily/list_daily_card.dart +++ b/lib/app/ui/widgets/weather/daily/daily_card.dart @@ -2,12 +2,12 @@ import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; import 'package:get/get.dart'; import 'package:intl/intl.dart'; -import 'package:rain/app/widgets/status/status_weather.dart'; -import 'package:rain/app/widgets/status/status_data.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_weather.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_data.dart'; import 'package:rain/main.dart'; -class ListDailyCard extends StatefulWidget { - const ListDailyCard({ +class DailyCard extends StatefulWidget { + const DailyCard({ super.key, required this.timeDaily, required this.weathercodeDaily, @@ -20,10 +20,10 @@ class ListDailyCard extends StatefulWidget { final double? temperature2MMin; @override - State createState() => _ListDailyCardState(); + State createState() => _DailyCardState(); } -class _ListDailyCardState extends State { +class _DailyCardState extends State { final statusWeather = StatusWeather(); final statusData = StatusData(); diff --git a/lib/app/widgets/daily/info_daily_card.dart b/lib/app/ui/widgets/weather/daily/daily_card_info.dart similarity index 92% rename from lib/app/widgets/daily/info_daily_card.dart rename to lib/app/ui/widgets/weather/daily/daily_card_info.dart index 64fe1d4..4290164 100644 --- a/lib/app/widgets/daily/info_daily_card.dart +++ b/lib/app/ui/widgets/weather/daily/daily_card_info.dart @@ -2,19 +2,19 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:iconsax_plus/iconsax_plus.dart'; import 'package:intl/intl.dart'; -import 'package:rain/app/data/weather.dart'; -import 'package:rain/app/widgets/desc/desc_container.dart'; -import 'package:rain/app/widgets/desc/message.dart'; -import 'package:rain/app/widgets/hourly/weather_hourly.dart'; -import 'package:rain/app/widgets/now/weather_now.dart'; -import 'package:rain/app/widgets/status/status_data.dart'; -import 'package:rain/app/widgets/status/status_weather.dart'; -import 'package:rain/app/widgets/sun_moon/sunset_sunrise.dart'; +import 'package:rain/app/data/db.dart'; +import 'package:rain/app/ui/widgets/weather/desc/desc_container.dart'; +import 'package:rain/app/ui/widgets/weather/desc/message.dart'; +import 'package:rain/app/ui/widgets/weather/hourly.dart'; +import 'package:rain/app/ui/widgets/weather/now.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_data.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_weather.dart'; +import 'package:rain/app/ui/widgets/weather/sunset_sunrise.dart'; import 'package:rain/main.dart'; import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; -class InfoDailyCard extends StatefulWidget { - const InfoDailyCard({ +class DailyCardInfo extends StatefulWidget { + const DailyCardInfo({ super.key, required this.weatherData, required this.index, @@ -24,10 +24,10 @@ class InfoDailyCard extends StatefulWidget { final int index; @override - State createState() => _InfoDailyCardState(); + State createState() => _DailyCardInfoState(); } -class _InfoDailyCardState extends State { +class _DailyCardInfoState extends State { final statusWeather = StatusWeather(); final statusData = StatusData(); final message = Message(); @@ -118,7 +118,7 @@ class _InfoDailyCardState extends State { margin: const EdgeInsets.symmetric(horizontal: 10), child: ListView( children: [ - WeatherNow( + Now( weather: weatherData.weathercode![startIndex + hourOfDay], degree: weatherData @@ -172,7 +172,7 @@ class _InfoDailyCardState extends State { Radius.circular(20), ), ), - child: WeatherHourly( + child: Hourly( time: weatherData.time![hourlyIndex], weather: weatherData .weathercode![hourlyIndex], diff --git a/lib/app/widgets/daily/weather_more.dart b/lib/app/ui/widgets/weather/daily/daily_card_list.dart similarity index 79% rename from lib/app/widgets/daily/weather_more.dart rename to lib/app/ui/widgets/weather/daily/daily_card_list.dart index 348b003..55a7442 100644 --- a/lib/app/widgets/daily/weather_more.dart +++ b/lib/app/ui/widgets/weather/daily/daily_card_list.dart @@ -1,22 +1,22 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:iconsax_plus/iconsax_plus.dart'; -import 'package:rain/app/data/weather.dart'; -import 'package:rain/app/widgets/daily/info_daily_card.dart'; -import 'package:rain/app/widgets/daily/list_daily_card.dart'; +import 'package:rain/app/data/db.dart'; +import 'package:rain/app/ui/widgets/weather/daily/daily_card_info.dart'; +import 'package:rain/app/ui/widgets/weather/daily/daily_card.dart'; -class WeatherMore extends StatefulWidget { - const WeatherMore({ +class DailyCardList extends StatefulWidget { + const DailyCardList({ super.key, required this.weatherData, }); final WeatherCard weatherData; @override - State createState() => _WeatherMoreState(); + State createState() => _DailyCardListState(); } -class _WeatherMoreState extends State { +class _DailyCardListState extends State { @override Widget build(BuildContext context) { const transparent = Colors.transparent; @@ -51,13 +51,13 @@ class _WeatherMoreState extends State { itemCount: timeDaily.length, itemBuilder: (context, index) => GestureDetector( onTap: () => Get.to( - () => InfoDailyCard( + () => DailyCardInfo( weatherData: weatherData, index: index, ), transition: Transition.downToUp, ), - child: ListDailyCard( + child: DailyCard( timeDaily: timeDaily[index], weathercodeDaily: weatherData.weathercodeDaily![index], temperature2MMax: weatherData.temperature2MMax![index], diff --git a/lib/app/widgets/daily/weather_daily.dart b/lib/app/ui/widgets/weather/daily/daily_container.dart similarity index 90% rename from lib/app/widgets/daily/weather_daily.dart rename to lib/app/ui/widgets/weather/daily/daily_container.dart index ed427db..cc62e0a 100644 --- a/lib/app/widgets/daily/weather_daily.dart +++ b/lib/app/ui/widgets/weather/daily/daily_container.dart @@ -2,14 +2,14 @@ import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; import 'package:get/get.dart'; import 'package:intl/intl.dart'; -import 'package:rain/app/data/weather.dart'; -import 'package:rain/app/widgets/daily/info_daily_card.dart'; -import 'package:rain/app/widgets/status/status_data.dart'; -import 'package:rain/app/widgets/status/status_weather.dart'; +import 'package:rain/app/data/db.dart'; +import 'package:rain/app/ui/widgets/weather/daily/daily_card_info.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_data.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_weather.dart'; import 'package:rain/main.dart'; -class WeatherDaily extends StatefulWidget { - const WeatherDaily({ +class DailyContainer extends StatefulWidget { + const DailyContainer({ super.key, required this.weatherData, required this.onTap, @@ -19,10 +19,10 @@ class WeatherDaily extends StatefulWidget { final VoidCallback onTap; @override - State createState() => _WeatherDailyState(); + State createState() => _DailyContainerState(); } -class _WeatherDailyState extends State { +class _DailyContainerState extends State { final statusWeather = StatusWeather(); final statusData = StatusData(); @@ -53,7 +53,7 @@ class _WeatherDailyState extends State { splashColor: splashColor, borderRadius: inkWellBorderRadius, onTap: () => Get.to( - () => InfoDailyCard( + () => DailyCardInfo( weatherData: weatherData, index: index, ), diff --git a/lib/app/widgets/desc/desc.dart b/lib/app/ui/widgets/weather/desc/desc.dart similarity index 100% rename from lib/app/widgets/desc/desc.dart rename to lib/app/ui/widgets/weather/desc/desc.dart diff --git a/lib/app/widgets/desc/desc_container.dart b/lib/app/ui/widgets/weather/desc/desc_container.dart similarity index 98% rename from lib/app/widgets/desc/desc_container.dart rename to lib/app/ui/widgets/weather/desc/desc_container.dart index ce132ed..e9d3ad1 100644 --- a/lib/app/widgets/desc/desc_container.dart +++ b/lib/app/ui/widgets/weather/desc/desc_container.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; -import 'package:rain/app/widgets/desc/desc.dart'; -import 'package:rain/app/widgets/desc/message.dart'; -import 'package:rain/app/widgets/status/status_data.dart'; +import 'package:rain/app/ui/widgets/weather/desc/desc.dart'; +import 'package:rain/app/ui/widgets/weather/desc/message.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_data.dart'; class DescContainer extends StatefulWidget { const DescContainer({ diff --git a/lib/app/widgets/desc/message.dart b/lib/app/ui/widgets/weather/desc/message.dart similarity index 100% rename from lib/app/widgets/desc/message.dart rename to lib/app/ui/widgets/weather/desc/message.dart diff --git a/lib/app/widgets/hourly/weather_hourly.dart b/lib/app/ui/widgets/weather/hourly.dart similarity index 83% rename from lib/app/widgets/hourly/weather_hourly.dart rename to lib/app/ui/widgets/weather/hourly.dart index ecc9051..df504a3 100644 --- a/lib/app/widgets/hourly/weather_hourly.dart +++ b/lib/app/ui/widgets/weather/hourly.dart @@ -1,12 +1,12 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:intl/intl.dart'; -import 'package:rain/app/widgets/status/status_data.dart'; -import 'package:rain/app/widgets/status/status_weather.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_data.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_weather.dart'; import 'package:rain/main.dart'; -class WeatherHourly extends StatefulWidget { - const WeatherHourly({ +class Hourly extends StatefulWidget { + const Hourly({ super.key, required this.time, required this.weather, @@ -21,10 +21,10 @@ class WeatherHourly extends StatefulWidget { final double degree; @override - State createState() => _WeatherHourlyState(); + State createState() => _HourlyState(); } -class _WeatherHourlyState extends State { +class _HourlyState extends State { final statusWeather = StatusWeather(); final statusData = StatusData(); diff --git a/lib/app/widgets/now/weather_now.dart b/lib/app/ui/widgets/weather/now.dart similarity index 94% rename from lib/app/widgets/now/weather_now.dart rename to lib/app/ui/widgets/weather/now.dart index 7d385c7..6e1c3a3 100644 --- a/lib/app/widgets/now/weather_now.dart +++ b/lib/app/ui/widgets/weather/now.dart @@ -2,12 +2,12 @@ import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; import 'package:get/get.dart'; import 'package:intl/intl.dart'; -import 'package:rain/app/widgets/status/status_data.dart'; -import 'package:rain/app/widgets/status/status_weather.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_data.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_weather.dart'; import 'package:rain/main.dart'; -class WeatherNow extends StatefulWidget { - const WeatherNow({ +class Now extends StatefulWidget { + const Now({ super.key, required this.weather, required this.degree, @@ -28,10 +28,10 @@ class WeatherNow extends StatefulWidget { final double feels; @override - State createState() => _WeatherNowState(); + State createState() => _NowState(); } -class _WeatherNowState extends State { +class _NowState extends State { final statusWeather = StatusWeather(); final statusData = StatusData(); diff --git a/lib/app/widgets/status/status_data.dart b/lib/app/ui/widgets/weather/status/status_data.dart similarity index 100% rename from lib/app/widgets/status/status_data.dart rename to lib/app/ui/widgets/weather/status/status_data.dart diff --git a/lib/app/widgets/status/status_weather.dart b/lib/app/ui/widgets/weather/status/status_weather.dart similarity index 100% rename from lib/app/widgets/status/status_weather.dart rename to lib/app/ui/widgets/weather/status/status_weather.dart diff --git a/lib/app/widgets/sun_moon/sunset_sunrise.dart b/lib/app/ui/widgets/weather/sunset_sunrise.dart similarity index 97% rename from lib/app/widgets/sun_moon/sunset_sunrise.dart rename to lib/app/ui/widgets/weather/sunset_sunrise.dart index a8f1ed7..e7f0556 100644 --- a/lib/app/widgets/sun_moon/sunset_sunrise.dart +++ b/lib/app/ui/widgets/weather/sunset_sunrise.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:gap/gap.dart'; -import 'package:rain/app/widgets/status/status_data.dart'; +import 'package:rain/app/ui/widgets/weather/status/status_data.dart'; class SunsetSunrise extends StatefulWidget { const SunsetSunrise({ diff --git a/lib/utils/color_converter.dart b/lib/app/utils/color_converter.dart similarity index 100% rename from lib/utils/color_converter.dart rename to lib/app/utils/color_converter.dart diff --git a/lib/utils/device_info.dart b/lib/app/utils/device_info.dart similarity index 100% rename from lib/utils/device_info.dart rename to lib/app/utils/device_info.dart diff --git a/lib/app/services/notification.dart b/lib/app/utils/notification.dart similarity index 100% rename from lib/app/services/notification.dart rename to lib/app/utils/notification.dart diff --git a/lib/app/services/utils.dart b/lib/app/utils/show_snack_bar.dart similarity index 100% rename from lib/app/services/utils.dart rename to lib/app/utils/show_snack_bar.dart diff --git a/lib/main.dart b/lib/main.dart index f64b228..4f71266 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -14,14 +14,14 @@ import 'package:internet_connection_checker_plus/internet_connection_checker_plu import 'package:isar/isar.dart'; import 'package:path_provider/path_provider.dart'; import 'package:rain/app/controller/controller.dart'; -import 'package:rain/app/data/weather.dart'; -import 'package:rain/app/modules/geolocation.dart'; -import 'package:rain/app/modules/home.dart'; -import 'package:rain/app/modules/onboarding.dart'; +import 'package:rain/app/data/db.dart'; +import 'package:rain/app/ui/geolocation.dart'; +import 'package:rain/app/ui/home.dart'; +import 'package:rain/app/ui/onboarding.dart'; import 'package:rain/theme/theme.dart'; import 'package:rain/theme/theme_controller.dart'; import 'package:rain/translation/translation.dart'; -import 'package:rain/utils/device_info.dart'; +import 'package:rain/app/utils/device_info.dart'; import 'package:time_machine/time_machine.dart'; import 'package:timezone/data/latest_all.dart' as tz; import 'package:timezone/timezone.dart' as tz; diff --git a/lib/theme/theme_controller.dart b/lib/theme/theme_controller.dart index e72d6e2..8bf4301 100644 --- a/lib/theme/theme_controller.dart +++ b/lib/theme/theme_controller.dart @@ -1,6 +1,6 @@ import 'package:get/get.dart'; import 'package:flutter/material.dart'; -import 'package:rain/app/data/weather.dart'; +import 'package:rain/app/data/db.dart'; import 'package:rain/main.dart'; class ThemeController extends GetxController { diff --git a/pubspec.lock b/pubspec.lock index 393acfa..e1f463d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -266,10 +266,10 @@ packages: dependency: "direct main" description: name: dio - sha256: "0dfb6b6a1979dac1c1245e17cef824d7b452ea29bd33d3467269f9bef3715fb0" + sha256: "5598aa796bbf4699afd5c67c0f5f6e2ed542afc956884b9cd58c306966efc260" url: "https://pub.dev" source: hosted - version: "5.6.0" + version: "5.7.0" dio_cache_interceptor: dependency: "direct main" description: @@ -1014,10 +1014,10 @@ packages: dependency: "direct main" description: name: restart_app - sha256: b37daeb1c02fcab30e19d9e30b6fdd215bd53577efd927042eb77cf6f09daadb + sha256: ed8b6a3223e90dcd5d9e44c79b66b96f5527a2467ba2b1ec2c242c3807dbd435 url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.3.0" scrollable_positioned_list: dependency: "direct main" description: @@ -1267,10 +1267,10 @@ packages: dependency: transitive description: name: uuid - sha256: "83d37c7ad7aaf9aa8e275490669535c8080377cfa7a7004c24dfac53afffaa90" + sha256: f33d6bb662f0e4f79dcd7ada2e6170f3b3a2530c28fc41f49a411ddedd576a77 url: "https://pub.dev" source: hosted - version: "4.4.2" + version: "4.5.0" vector_math: dependency: transitive description: @@ -1384,5 +1384,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.5.1 <4.0.0" + dart: ">=3.5.2 <4.0.0" flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index 04fbe2e..fa3d251 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -6,7 +6,7 @@ publish_to: "none" version: 1.3.5+38 environment: - sdk: ">=3.5.1 <4.0.0" + sdk: ">=3.5.2 <4.0.0" dependencies: flutter: @@ -15,7 +15,7 @@ dependencies: sdk: flutter get: ^4.6.6 gap: ^3.0.1 - dio: ^5.6.0 + dio: ^5.7.0 intl: ^0.19.0 shimmer: ^3.0.0 latlong2: ^0.9.1 @@ -24,7 +24,7 @@ dependencies: geolocator: ^13.0.1 home_widget: ^0.7.0 workmanager: ^0.5.2 - restart_app: ^1.2.1 + restart_app: ^1.3.0 flutter_map: ^7.0.2 google_fonts: ^6.2.1 url_launcher: ^6.3.0 From ddf711557925151a81b4d49ae20bc68b418d04ae Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sat, 5 Oct 2024 17:49:08 +0300 Subject: [PATCH 25/41] Update gradle --- .metadata | 34 ++++---- android/app/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/settings.gradle | 9 +-- ios/RunnerTests/RunnerTests.swift | 12 +++ macos/RunnerTests/RunnerTests.swift | 12 +++ pubspec.lock | 78 +++++++++---------- pubspec.yaml | 18 ++--- test/widget_test.dart | 30 +++++++ 9 files changed, 125 insertions(+), 72 deletions(-) create mode 100644 ios/RunnerTests/RunnerTests.swift create mode 100644 macos/RunnerTests/RunnerTests.swift create mode 100644 test/widget_test.dart diff --git a/.metadata b/.metadata index 262ceed..2d1be89 100644 --- a/.metadata +++ b/.metadata @@ -1,11 +1,11 @@ # This file tracks properties of this Flutter project. # Used by Flutter tool to assess capabilities and perform upgrades etc. # -# This file should be version controlled. +# This file should be version controlled and should not be manually edited. version: - revision: 135454af32477f815a7525073027a3ff9eff1bfd - channel: stable + revision: "2663184aa79047d0a33a14a3b607954f8fdd8730" + channel: "stable" project_type: app @@ -13,26 +13,26 @@ project_type: app migration: platforms: - platform: root - create_revision: 135454af32477f815a7525073027a3ff9eff1bfd - base_revision: 135454af32477f815a7525073027a3ff9eff1bfd + create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 - platform: android - create_revision: 135454af32477f815a7525073027a3ff9eff1bfd - base_revision: 135454af32477f815a7525073027a3ff9eff1bfd + create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 - platform: ios - create_revision: 135454af32477f815a7525073027a3ff9eff1bfd - base_revision: 135454af32477f815a7525073027a3ff9eff1bfd + create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 - platform: linux - create_revision: 135454af32477f815a7525073027a3ff9eff1bfd - base_revision: 135454af32477f815a7525073027a3ff9eff1bfd + create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 - platform: macos - create_revision: 135454af32477f815a7525073027a3ff9eff1bfd - base_revision: 135454af32477f815a7525073027a3ff9eff1bfd + create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 - platform: web - create_revision: 135454af32477f815a7525073027a3ff9eff1bfd - base_revision: 135454af32477f815a7525073027a3ff9eff1bfd + create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 - platform: windows - create_revision: 135454af32477f815a7525073027a3ff9eff1bfd - base_revision: 135454af32477f815a7525073027a3ff9eff1bfd + create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 # User provided section diff --git a/android/app/build.gradle b/android/app/build.gradle index 9847a76..ed262a6 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -86,7 +86,7 @@ flutter { dependencies { implementation("androidx.core:core-remoteviews:1.1.0") implementation("com.google.android.material:material:1.12.0") - implementation("androidx.work:work-runtime-ktx:2.9.0") + implementation("androidx.work:work-runtime-ktx:2.9.1") } // Remove this for FLOSS version diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 3c472b9..7bb2df6 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/android/settings.gradle b/android/settings.gradle index 9f0fe47..b9e43bd 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -5,10 +5,9 @@ pluginManagement { def flutterSdkPath = properties.getProperty("flutter.sdk") assert flutterSdkPath != null, "flutter.sdk not set in local.properties" return flutterSdkPath - } - settings.ext.flutterSdkPath = flutterSdkPath() + }() - includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") repositories { google() @@ -19,8 +18,8 @@ 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 "2.0.0" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/macos/RunnerTests/RunnerTests.swift b/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..61f3bd1 --- /dev/null +++ b/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Cocoa +import FlutterMacOS +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/pubspec.lock b/pubspec.lock index e1f463d..be8af4a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -98,10 +98,10 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: dd09dd4e2b078992f42aac7f1a622f01882a8492fef08486b27ddde929c19f04 + sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" url: "https://pub.dev" source: hosted - version: "2.4.12" + version: "2.4.13" build_runner_core: dependency: transitive description: @@ -226,10 +226,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" + sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab" url: "https://pub.dev" source: hosted - version: "2.3.6" + version: "2.3.7" dartx: dependency: transitive description: @@ -351,10 +351,10 @@ packages: dependency: "direct main" description: name: flutter_expandable_fab - sha256: f4692d1949cda81e10ca0c3e75aea1e14e29ecc12d9328996321b96e9747a955 + sha256: "85275279d19faf4fbe5639dc1f139b4555b150e079d056f085601a45688af12c" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.0" flutter_hsvcolor_picker: dependency: "direct main" description: @@ -367,26 +367,26 @@ packages: dependency: "direct dev" description: name: flutter_launcher_icons - sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea" + sha256: "619817c4b65b322b5104b6bb6dfe6cda62d9729bd7ad4303ecc8b4e690a67a77" url: "https://pub.dev" source: hosted - version: "0.13.1" + version: "0.14.1" flutter_lints: dependency: "direct dev" description: name: flutter_lints - sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c" + sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "5.0.0" flutter_local_notifications: dependency: "direct main" description: name: flutter_local_notifications - sha256: c500d5d9e7e553f06b61877ca6b9c8b92c570a4c8db371038702e8ce57f8a50f + sha256: "49eeef364fddb71515bc78d5a8c51435a68bccd6e4d68e25a942c5e47761ae71" url: "https://pub.dev" source: hosted - version: "17.2.2" + version: "17.2.3" flutter_local_notifications_linux: dependency: transitive description: @@ -662,10 +662,10 @@ packages: dependency: "direct main" description: name: internet_connection_checker_plus - sha256: ea3f14695e5c2baa6daba5121a971338a69e7d615cbf1e47ae39f31234cc668c + sha256: "95da3194bdb98cb606b921f0e0007cbe55c32d6a7fa92d5debe59ef4183ce2a6" url: "https://pub.dev" source: hosted - version: "2.5.1" + version: "2.5.2" intl: dependency: "direct main" description: @@ -782,10 +782,10 @@ packages: dependency: transitive description: name: lints - sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235" + sha256: "3315600f3fb3b135be672bf4a178c55f274bebe368325ae18462c89ac1e3b413" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "5.0.0" lists: dependency: transitive description: @@ -854,10 +854,10 @@ packages: dependency: transitive description: name: mime - sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a" + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "2.0.0" nm: dependency: transitive description: @@ -1014,10 +1014,10 @@ packages: dependency: "direct main" description: name: restart_app - sha256: ed8b6a3223e90dcd5d9e44c79b66b96f5527a2467ba2b1ec2c242c3807dbd435 + sha256: "00d5ec3e9de871cedbe552fc41e615b042b5ec654385e090e0983f6d02f655ed" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.3.2" scrollable_positioned_list: dependency: "direct main" description: @@ -1123,10 +1123,10 @@ packages: dependency: transitive description: name: synchronized - sha256: a824e842b8a054f91a728b783c177c1e4731f6b124f9192468457a8913371255 + sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.3.0+3" term_glyph: dependency: transitive description: @@ -1211,10 +1211,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: e35a698ac302dd68e41f73250bd9517fe3ab5fa4f18fe4647a0872db61bacbab + sha256: a4e5f34f2fadf1fa7b4e69db89189056e313c9c98e8ad420e6b53677b6abc334 url: "https://pub.dev" source: hosted - version: "6.3.10" + version: "6.3.11" url_launcher_ios: dependency: transitive description: @@ -1235,10 +1235,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de" + sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.2.1" url_launcher_platform_interface: dependency: transitive description: @@ -1267,10 +1267,10 @@ packages: dependency: transitive description: name: uuid - sha256: f33d6bb662f0e4f79dcd7ada2e6170f3b3a2530c28fc41f49a411ddedd576a77 + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff url: "https://pub.dev" source: hosted - version: "4.5.0" + version: "4.5.1" vector_math: dependency: transitive description: @@ -1299,10 +1299,10 @@ packages: dependency: transitive description: name: web - sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.0" web_socket: dependency: transitive description: @@ -1323,18 +1323,18 @@ packages: dependency: transitive description: name: win32 - sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a" + sha256: "4d45dc9069dba4619dc0ebd93c7cec5e66d8482cb625a370ac806dcc8165f2ec" url: "https://pub.dev" source: hosted - version: "5.5.4" + version: "5.5.5" win32_registry: dependency: transitive description: name: win32_registry - sha256: "723b7f851e5724c55409bb3d5a32b203b3afe8587eaf5dafb93a5fed8ecda0d6" + sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852" url: "https://pub.dev" source: hosted - version: "1.1.4" + version: "1.1.5" wkt_parser: dependency: transitive description: @@ -1355,10 +1355,10 @@ packages: dependency: transitive description: name: xdg_directories - sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.1.0" xml: dependency: transitive description: @@ -1371,10 +1371,10 @@ packages: dependency: transitive description: name: xxh3 - sha256: a92b30944a9aeb4e3d4f3c3d4ddb3c7816ca73475cd603682c4f8149690f56d7 + sha256: cbeb0e1d10f4c6bf67b650f395eac0cc689425b5efc2ba0cc3d3e069a0beaeec url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "1.1.0" yaml: dependency: transitive description: @@ -1384,5 +1384,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.5.2 <4.0.0" + dart: ">=3.5.3 <4.0.0" flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index fa3d251..c0eb096 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,10 +3,10 @@ description: Weather application publish_to: "none" -version: 1.3.5+38 +version: 1.3.6+39 environment: - sdk: ">=3.5.2 <4.0.0" + sdk: ">=3.5.3 <4.0.0" dependencies: flutter: @@ -24,7 +24,7 @@ dependencies: geolocator: ^13.0.1 home_widget: ^0.7.0 workmanager: ^0.5.2 - restart_app: ^1.3.0 + restart_app: ^1.3.2 flutter_map: ^7.0.2 google_fonts: ^6.2.1 url_launcher: ^6.3.0 @@ -45,11 +45,11 @@ dependencies: line_awesome_flutter: ^3.0.1 dio_cache_interceptor: ^3.5.0 flutter_map_animations: ^0.7.1 - flutter_expandable_fab: ^2.2.0 + flutter_expandable_fab: ^2.3.0 flutter_hsvcolor_picker: ^1.5.1 scrollable_positioned_list: ^0.3.8 - flutter_local_notifications: ^17.2.2 - internet_connection_checker_plus: ^2.5.1 + flutter_local_notifications: ^17.2.3 + internet_connection_checker_plus: ^2.5.2 dio_cache_interceptor_file_store: ^1.2.2 isar: version: ^3.1.8 @@ -70,11 +70,11 @@ dev_dependencies: flutter_test: sdk: flutter freezed: ^2.5.7 - build_runner: ^2.4.12 - flutter_lints: ^4.0.0 + build_runner: ^2.4.13 + flutter_lints: ^5.0.0 json_serializable: ^6.8.0 flutter_native_splash: ^2.4.1 - flutter_launcher_icons: ^0.13.1 + flutter_launcher_icons: ^0.14.1 isar_generator: version: ^3.1.8 hosted: https://pub.isar-community.dev/ diff --git a/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 0000000..411d91f --- /dev/null +++ b/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:rain/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} From 7a00917ca27fe16cfe28f355a8e9e5d40c740bc4 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sat, 5 Oct 2024 22:23:21 +0300 Subject: [PATCH 26/41] Update build.gradle --- android/app/build.gradle | 46 ++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index ed262a6..f55469f 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -29,58 +29,54 @@ if (keystorePropertiesFile.exists()) { } android { - namespace 'com.yoshi.rain' - compileSdkVersion 34 - ndkVersion flutter.ndkVersion + namespace = 'com.yoshi.rain' + compileSdk = 34 + ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = '1.8' - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' + jvmTarget = JavaVersion.VERSION_17 } defaultConfig { - applicationId "com.yoshi.rain" - minSdkVersion 23 - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName + applicationId = 'com.yoshi.rain' + minSdk = 23 + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName } signingConfigs { - release { - keyAlias keystoreProperties['keyAlias'] - keyPassword keystoreProperties['keyPassword'] - storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null - storePassword keystoreProperties['storePassword'] + release { + keyAlias = keystoreProperties['keyAlias'] + keyPassword = keystoreProperties['keyPassword'] + storeFile = keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null + storePassword = keystoreProperties['storePassword'] } } buildTypes { release { - signingConfig signingConfigs.release + signingConfig = signingConfigs.release } debug { - signingConfig signingConfigs.debug - minifyEnabled true + signingConfig = signingConfigs.debug + minifyEnabled = true } } buildFeatures { - viewBinding true + viewBinding = true } } flutter { - source '../..' + source = '../..' } dependencies { From fa0921d1b0c4c286dc688ed29963c1da65b590bb Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sat, 12 Oct 2024 22:27:27 +0300 Subject: [PATCH 27/41] Fix settings gradle --- android/app/build.gradle | 37 ++++++++----------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/settings.gradle | 4 +- pubspec.lock | 28 +++++++------- pubspec.yaml | 6 +-- 5 files changed, 35 insertions(+), 42 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index f55469f..3a37dd5 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -4,24 +4,6 @@ plugins { id "dev.flutter.flutter-gradle-plugin" } -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - def keystoreProperties = new Properties() def keystorePropertiesFile = rootProject.file('key.properties') if (keystorePropertiesFile.exists()) { @@ -34,12 +16,23 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { - jvmTarget = JavaVersion.VERSION_17 + jvmTarget = "1.8" + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + dependenciesInfo { + // Disables dependency metadata when building APKs. + includeInApk = false + // Disables dependency metadata when building Android App Bundles. + includeInBundle = false } defaultConfig { @@ -76,7 +69,7 @@ android { } flutter { - source = '../..' + source = "../.." } dependencies { diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 7bb2df6..81a4301 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip diff --git a/android/settings.gradle b/android/settings.gradle index b9e43bd..bd016dc 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.1.0" apply false - id "org.jetbrains.kotlin.android" version "1.8.22" apply false + id "com.android.application" version "7.3.1" apply false + id "org.jetbrains.kotlin.android" version "2.0.0" apply false } include ":app" diff --git a/pubspec.lock b/pubspec.lock index be8af4a..827f28d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -250,10 +250,10 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: a7fd703482b391a87d60b6061d04dfdeab07826b96f9abd8f5ed98068acc0074 + sha256: db03b2d2a3fa466a4627709e1db58692c3f7f658e36a5942d342d86efedc4091 url: "https://pub.dev" source: hosted - version: "10.1.2" + version: "11.0.0" device_info_plus_platform_interface: dependency: transitive description: @@ -322,10 +322,10 @@ packages: dependency: transitive description: name: file - sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 url: "https://pub.dev" source: hosted - version: "7.0.0" + version: "7.0.1" fixnum: dependency: transitive description: @@ -878,10 +878,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: a75164ade98cb7d24cfd0a13c6408927c6b217fa60dee5a7ff5c116a58f28918 + sha256: "894f37107424311bdae3e476552229476777b8752c5a2a2369c0cb9a2d5442ef" url: "https://pub.dev" source: hosted - version: "8.0.2" + version: "8.0.3" package_info_plus_platform_interface: dependency: transitive description: @@ -910,10 +910,10 @@ packages: dependency: transitive description: name: path_provider_android - sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7" + sha256: c464428172cb986b758c6d1724c603097febb8fb855aa265aeecc9280c294d4a url: "https://pub.dev" source: hosted - version: "2.2.10" + version: "2.2.12" path_provider_foundation: dependency: transitive description: @@ -1203,18 +1203,18 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3" + sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.3.1" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: a4e5f34f2fadf1fa7b4e69db89189056e313c9c98e8ad420e6b53677b6abc334 + sha256: "8fc3bae0b68c02c47c5c86fa8bfa74471d42687b0eded01b78de87872db745e2" url: "https://pub.dev" source: hosted - version: "6.3.11" + version: "6.3.12" url_launcher_ios: dependency: transitive description: @@ -1323,10 +1323,10 @@ packages: dependency: transitive description: name: win32 - sha256: "4d45dc9069dba4619dc0ebd93c7cec5e66d8482cb625a370ac806dcc8165f2ec" + sha256: e5c39a90447e7c81cfec14b041cdbd0d0916bd9ebbc7fe02ab69568be703b9bd url: "https://pub.dev" source: hosted - version: "5.5.5" + version: "5.6.0" win32_registry: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index c0eb096..e4986ff 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -27,7 +27,7 @@ dependencies: restart_app: ^1.3.2 flutter_map: ^7.0.2 google_fonts: ^6.2.1 - url_launcher: ^6.3.0 + url_launcher: ^6.3.1 iconsax_plus: ^1.0.0 time_machine: ^0.9.17 dynamic_color: ^1.7.0 @@ -35,8 +35,8 @@ dependencies: # quick_settings: ^1.0.1 json_annotation: ^4.9.0 flutter_timezone: ^3.0.1 - device_info_plus: ^10.1.2 - package_info_plus: ^8.0.2 + device_info_plus: ^11.0.0 + package_info_plus: ^8.0.3 connectivity_plus: ^6.0.5 flutter_map_cache: ^1.5.1 freezed_annotation: ^2.4.4 From b7d0e8012ac9ab3a34872f16f24e44f0db8685ee Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sun, 3 Nov 2024 20:51:49 +0300 Subject: [PATCH 28/41] Update dependencies --- pubspec.lock | 94 ++++++++++++++++++++++++++-------------------------- pubspec.yaml | 14 ++++---- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 827f28d..5796875 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -42,10 +42,10 @@ packages: dependency: transitive description: name: args - sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6 url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.6.0" async: dependency: transitive description: @@ -146,10 +146,10 @@ packages: dependency: transitive description: name: cli_util - sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19 + sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c url: "https://pub.dev" source: hosted - version: "0.4.1" + version: "0.4.2" clock: dependency: transitive description: @@ -162,10 +162,10 @@ packages: dependency: transitive description: name: code_builder - sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 + sha256: "0ec10bf4a89e4c613960bf1e8b42c64127021740fb21640c29c909826a5eea3e" url: "https://pub.dev" source: hosted - version: "4.10.0" + version: "4.10.1" collection: dependency: transitive description: @@ -178,10 +178,10 @@ packages: dependency: "direct main" description: name: connectivity_plus - sha256: "2056db5241f96cdc0126bd94459fc4cdc13876753768fc7a31c425e50a7177d0" + sha256: "876849631b0c7dc20f8b471a2a03142841b482438e3b707955464f5ffca3e4c3" url: "https://pub.dev" source: hosted - version: "6.0.5" + version: "6.1.0" connectivity_plus_platform_interface: dependency: transitive description: @@ -194,26 +194,26 @@ packages: dependency: transitive description: name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" crypto: dependency: transitive description: name: crypto - sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.6" csslib: dependency: transitive description: name: csslib - sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb" + sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.2" dart_earcut: dependency: transitive description: @@ -250,10 +250,10 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: db03b2d2a3fa466a4627709e1db58692c3f7f658e36a5942d342d86efedc4091 + sha256: c4af09051b4f0508f6c1dc0a5c085bf014d5c9a4a0678ce1799c2b4d716387a0 url: "https://pub.dev" source: hosted - version: "11.0.0" + version: "11.1.0" device_info_plus_platform_interface: dependency: transitive description: @@ -330,10 +330,10 @@ packages: dependency: transitive description: name: fixnum - sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" flutter: dependency: "direct main" description: flutter @@ -383,26 +383,26 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: "49eeef364fddb71515bc78d5a8c51435a68bccd6e4d68e25a942c5e47761ae71" + sha256: "725145682706fb0e5a30f93e5cb64f3df7ed7743de749bd555b22bf75ee718c0" url: "https://pub.dev" source: hosted - version: "17.2.3" + version: "18.0.0" flutter_local_notifications_linux: dependency: transitive description: name: flutter_local_notifications_linux - sha256: c49bd06165cad9beeb79090b18cd1eb0296f4bf4b23b84426e37dd7c027fc3af + sha256: "8f685642876742c941b29c32030f6f4f6dacd0e4eaecb3efbb187d6a3812ca01" url: "https://pub.dev" source: hosted - version: "4.0.1" + version: "5.0.0" flutter_local_notifications_platform_interface: dependency: transitive description: name: flutter_local_notifications_platform_interface - sha256: "85f8d07fe708c1bdcf45037f2c0109753b26ae077e9d9e899d55971711a4ea66" + sha256: "6c5b83c86bf819cdb177a9247a3722067dd8cc6313827ce7c77a4b238a26fd52" url: "https://pub.dev" source: hosted - version: "7.2.0" + version: "8.0.0" flutter_localizations: dependency: "direct main" description: flutter @@ -436,10 +436,10 @@ packages: dependency: "direct dev" description: name: flutter_native_splash - sha256: aa06fec78de2190f3db4319dd60fdc8d12b2626e93ef9828633928c2dcaea840 + sha256: ee5c9bd2b74ea8676442fd4ab876b5d41681df49276488854d6c81a5377c0ef1 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" flutter_test: dependency: "direct dev" description: flutter @@ -614,10 +614,10 @@ packages: dependency: transitive description: name: html - sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a" + sha256: "1fc58edeaec4307368c60d59b7e15b9d658b57d7f3125098b6294153c75337ec" url: "https://pub.dev" source: hosted - version: "0.15.4" + version: "0.15.5" http: dependency: transitive description: @@ -654,10 +654,10 @@ packages: dependency: transitive description: name: image - sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8" + sha256: f31d52537dc417fdcde36088fdf11d191026fd5e4fae742491ebd40e5a8bea7d url: "https://pub.dev" source: hosted - version: "4.2.0" + version: "4.3.0" internet_connection_checker_plus: dependency: "direct main" description: @@ -806,10 +806,10 @@ packages: dependency: transitive description: name: logging - sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" macros: dependency: transitive description: @@ -878,10 +878,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "894f37107424311bdae3e476552229476777b8752c5a2a2369c0cb9a2d5442ef" + sha256: df3eb3e0aed5c1107bb0fdb80a8e82e778114958b1c5ac5644fb1ac9cae8a998 url: "https://pub.dev" source: hosted - version: "8.0.3" + version: "8.1.0" package_info_plus_platform_interface: dependency: transitive description: @@ -902,10 +902,10 @@ packages: dependency: "direct main" description: name: path_provider - sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.5" path_provider_android: dependency: transitive description: @@ -958,10 +958,10 @@ packages: dependency: transitive description: name: platform - sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" url: "https://pub.dev" source: hosted - version: "3.1.5" + version: "3.1.6" plugin_platform_interface: dependency: transitive description: @@ -1179,10 +1179,10 @@ packages: dependency: transitive description: name: typed_data - sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 url: "https://pub.dev" source: hosted - version: "1.3.2" + version: "1.4.0" unicode: dependency: transitive description: @@ -1211,10 +1211,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "8fc3bae0b68c02c47c5c86fa8bfa74471d42687b0eded01b78de87872db745e2" + sha256: "6fc2f56536ee873eeb867ad176ae15f304ccccc357848b351f6f0d8d4a40d193" url: "https://pub.dev" source: hosted - version: "6.3.12" + version: "6.3.14" url_launcher_ios: dependency: transitive description: @@ -1259,10 +1259,10 @@ packages: dependency: transitive description: name: url_launcher_windows - sha256: "49c10f879746271804767cb45551ec5592cdab00ee105c06dddde1a98f73b185" + sha256: "44cf3aabcedde30f2dba119a9dea3b0f2672fbe6fa96e85536251d678216b3c4" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" uuid: dependency: transitive description: @@ -1323,10 +1323,10 @@ packages: dependency: transitive description: name: win32 - sha256: e5c39a90447e7c81cfec14b041cdbd0d0916bd9ebbc7fe02ab69568be703b9bd + sha256: "84ba388638ed7a8cb3445a320c8273136ab2631cd5f2c57888335504ddab1bc2" url: "https://pub.dev" source: hosted - version: "5.6.0" + version: "5.8.0" win32_registry: dependency: transitive description: @@ -1384,5 +1384,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.5.3 <4.0.0" + dart: ">=3.5.4 <4.0.0" flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index e4986ff..d58a52b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -6,7 +6,7 @@ publish_to: "none" version: 1.3.6+39 environment: - sdk: ">=3.5.3 <4.0.0" + sdk: ">=3.5.4 <4.0.0" dependencies: flutter: @@ -31,13 +31,13 @@ dependencies: iconsax_plus: ^1.0.0 time_machine: ^0.9.17 dynamic_color: ^1.7.0 - path_provider: ^2.1.4 + path_provider: ^2.1.5 # quick_settings: ^1.0.1 json_annotation: ^4.9.0 flutter_timezone: ^3.0.1 - device_info_plus: ^11.0.0 - package_info_plus: ^8.0.3 - connectivity_plus: ^6.0.5 + device_info_plus: ^11.1.0 + package_info_plus: ^8.1.0 + connectivity_plus: ^6.1.0 flutter_map_cache: ^1.5.1 freezed_annotation: ^2.4.4 flutter_displaymode: ^0.6.0 @@ -48,7 +48,7 @@ dependencies: flutter_expandable_fab: ^2.3.0 flutter_hsvcolor_picker: ^1.5.1 scrollable_positioned_list: ^0.3.8 - flutter_local_notifications: ^17.2.3 + flutter_local_notifications: ^18.0.0 internet_connection_checker_plus: ^2.5.2 dio_cache_interceptor_file_store: ^1.2.2 isar: @@ -73,7 +73,7 @@ dev_dependencies: build_runner: ^2.4.13 flutter_lints: ^5.0.0 json_serializable: ^6.8.0 - flutter_native_splash: ^2.4.1 + flutter_native_splash: ^2.4.2 flutter_launcher_icons: ^0.14.1 isar_generator: version: ^3.1.8 From 3a23dd628832dcd942e8e77b0f62871b8c55a517 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sun, 10 Nov 2024 19:55:18 +0300 Subject: [PATCH 29/41] Update java --- android/app/build.gradle | 6 +++--- android/settings.gradle | 2 +- pubspec.lock | 8 ++++---- pubspec.yaml | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 3a37dd5..66278ec 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -16,12 +16,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = "1.8" + jvmTarget = 17 } sourceSets { diff --git a/android/settings.gradle b/android/settings.gradle index bd016dc..5a6de5c 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -19,7 +19,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "7.3.1" apply false - id "org.jetbrains.kotlin.android" version "2.0.0" apply false + id "org.jetbrains.kotlin.android" version "2.0.20" apply false } include ":app" diff --git a/pubspec.lock b/pubspec.lock index 5796875..8652614 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -250,10 +250,10 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: c4af09051b4f0508f6c1dc0a5c085bf014d5c9a4a0678ce1799c2b4d716387a0 + sha256: f545ffbadee826f26f2e1a0f0cbd667ae9a6011cc0f77c0f8f00a969655e6e95 url: "https://pub.dev" source: hosted - version: "11.1.0" + version: "11.1.1" device_info_plus_platform_interface: dependency: transitive description: @@ -878,10 +878,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: df3eb3e0aed5c1107bb0fdb80a8e82e778114958b1c5ac5644fb1ac9cae8a998 + sha256: da8d9ac8c4b1df253d1a328b7bf01ae77ef132833479ab40763334db13b91cce url: "https://pub.dev" source: hosted - version: "8.1.0" + version: "8.1.1" package_info_plus_platform_interface: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index d58a52b..7fa2bb0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -35,8 +35,8 @@ dependencies: # quick_settings: ^1.0.1 json_annotation: ^4.9.0 flutter_timezone: ^3.0.1 - device_info_plus: ^11.1.0 - package_info_plus: ^8.1.0 + device_info_plus: ^11.1.1 + package_info_plus: ^8.1.1 connectivity_plus: ^6.1.0 flutter_map_cache: ^1.5.1 freezed_annotation: ^2.4.4 From 0552a84e6f4c20d17844265cf7872f7053a24287 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sun, 15 Dec 2024 13:41:23 +0300 Subject: [PATCH 30/41] Fix dependencies --- android/app/build.gradle | 2 +- android/app/src/main/AndroidManifest.xml | 3 +- android/settings.gradle | 4 +- lib/main.dart | 7 +- pubspec.lock | 194 +++++++++++------------ pubspec.yaml | 23 ++- 6 files changed, 114 insertions(+), 119 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 66278ec..df8c4ca 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -21,7 +21,7 @@ android { } kotlinOptions { - jvmTarget = 17 + jvmTarget = JavaVersion.VERSION_17 } sourceSets { diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 1934665..d02b0cf 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -18,6 +18,7 @@ android:theme="@style/LaunchTheme" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true" + android:enableOnBackInvokedCallback="true" android:windowSoftInputMode="adjustResize"> - \ No newline at end of file + diff --git a/android/settings.gradle b/android/settings.gradle index 5a6de5c..ece7c19 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.1" apply false - id "org.jetbrains.kotlin.android" version "2.0.20" apply false + id "com.android.application" version "7.4.2" apply false + id "org.jetbrains.kotlin.android" version "2.1.0" apply false } include ":app" diff --git a/lib/main.dart b/lib/main.dart index 4f71266..f305b02 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -22,7 +22,6 @@ import 'package:rain/theme/theme.dart'; import 'package:rain/theme/theme_controller.dart'; import 'package:rain/translation/translation.dart'; import 'package:rain/app/utils/device_info.dart'; -import 'package:time_machine/time_machine.dart'; import 'package:timezone/data/latest_all.dart' as tz; import 'package:timezone/timezone.dart' as tz; import 'package:workmanager/workmanager.dart'; @@ -99,11 +98,7 @@ void main() async { Workmanager().initialize(callbackDispatcher, isInDebugMode: kDebugMode); await setOptimalDisplayMode(); } - if (Platform.isAndroid || Platform.isIOS) { - timeZoneName = await FlutterTimezone.getLocalTimezone(); - } else { - timeZoneName = '${DateTimeZone.local}'; - } + timeZoneName = await FlutterTimezone.getLocalTimezone(); tz.initializeTimeZones(); tz.setLocalLocation(tz.getLocation(timeZoneName)); await isarInit(); diff --git a/pubspec.lock b/pubspec.lock index 8652614..d28508c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,23 +5,23 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 + sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" url: "https://pub.dev" source: hosted - version: "72.0.0" + version: "76.0.0" _macros: dependency: transitive description: dart source: sdk - version: "0.3.2" + version: "0.3.3" analyzer: dependency: transitive description: name: analyzer - sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 + sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" url: "https://pub.dev" source: hosted - version: "6.7.0" + version: "6.11.0" ansicolor: dependency: transitive description: @@ -34,10 +34,10 @@ packages: dependency: transitive description: name: archive - sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d + sha256: "08064924cbf0ab88280a0c3f60db9dd24fec693927e725ecb176f16c629d1cb8" url: "https://pub.dev" source: hosted - version: "3.6.1" + version: "4.0.1" args: dependency: transitive description: @@ -170,18 +170,18 @@ packages: dependency: transitive description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.0" connectivity_plus: dependency: "direct main" description: name: connectivity_plus - sha256: "876849631b0c7dc20f8b471a2a03142841b482438e3b707955464f5ffca3e4c3" + sha256: e0817759ec6d2d8e57eb234e6e57d2173931367a865850c7acea40d4b4f9c27d url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "6.1.1" connectivity_plus_platform_interface: dependency: transitive description: @@ -250,18 +250,18 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: f545ffbadee826f26f2e1a0f0cbd667ae9a6011cc0f77c0f8f00a969655e6e95 + sha256: "4fa68e53e26ab17b70ca39f072c285562cfc1589df5bb1e9295db90f6645f431" url: "https://pub.dev" source: hosted - version: "11.1.1" + version: "11.2.0" device_info_plus_platform_interface: dependency: transitive description: name: device_info_plus_platform_interface - sha256: "282d3cf731045a2feb66abfe61bbc40870ae50a3ed10a4d3d217556c35c8c2ba" + sha256: "0b04e02b30791224b31969eb1b50d723498f402971bff3630bca2ba839bd1ed2" url: "https://pub.dev" source: hosted - version: "7.0.1" + version: "7.0.2" dio: dependency: "direct main" description: @@ -274,10 +274,10 @@ packages: dependency: "direct main" description: name: dio_cache_interceptor - sha256: fb7905c0d12075d8786a6b63bffd64ae062d053f682cfaf28d145a2686507308 + sha256: "1346705a2057c265014d7696e3e2318b560bfb00b484dac7f9b01e2ceaebb07d" url: "https://pub.dev" source: hosted - version: "3.5.0" + version: "3.5.1" dio_cache_interceptor_file_store: dependency: "direct main" description: @@ -367,10 +367,10 @@ packages: dependency: "direct dev" description: name: flutter_launcher_icons - sha256: "619817c4b65b322b5104b6bb6dfe6cda62d9729bd7ad4303ecc8b4e690a67a77" + sha256: "31cd0885738e87c72d6f055564d37fabcdacee743b396b78c7636c169cac64f5" url: "https://pub.dev" source: hosted - version: "0.14.1" + version: "0.14.2" flutter_lints: dependency: "direct dev" description: @@ -383,10 +383,10 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: "725145682706fb0e5a30f93e5cb64f3df7ed7743de749bd555b22bf75ee718c0" + sha256: ef41ae901e7529e52934feba19ed82827b11baa67336829564aeab3129460610 url: "https://pub.dev" source: hosted - version: "18.0.0" + version: "18.0.1" flutter_local_notifications_linux: dependency: transitive description: @@ -420,10 +420,10 @@ packages: dependency: "direct main" description: name: flutter_map_animations - sha256: a2135cd3cf36c07d821efeabb0be31aca380449528af80913c77b158e142eae9 + sha256: "08233f89919049a3601e785d32e9d1d9e1faac6578190150f1d7495fc1050d36" url: "https://pub.dev" source: hosted - version: "0.7.1" + version: "0.8.0" flutter_map_cache: dependency: "direct main" description: @@ -436,10 +436,10 @@ packages: dependency: "direct dev" description: name: flutter_native_splash - sha256: ee5c9bd2b74ea8676442fd4ab876b5d41681df49276488854d6c81a5377c0ef1 + sha256: "1152ab0067ca5a2ebeb862fe0a762057202cceb22b7e62692dcbabf6483891bb" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.3" flutter_test: dependency: "direct dev" description: flutter @@ -526,10 +526,10 @@ packages: dependency: "direct main" description: name: geolocator - sha256: "0ec58b731776bc43097fcf751f79681b6a8f6d3bc737c94779fe9f1ad73c1a81" + sha256: d2ec66329cab29cb297d51d96c067d457ca519dca8589665fa0b82ebacb7dbe4 url: "https://pub.dev" source: hosted - version: "13.0.1" + version: "13.0.2" geolocator_android: dependency: transitive description: @@ -542,10 +542,10 @@ packages: dependency: transitive description: name: geolocator_apple - sha256: bc2aca02423ad429cb0556121f56e60360a2b7d694c8570301d06ea0c00732fd + sha256: "6154ea2682563f69fc0125762ed7e91e7ed85d0b9776595653be33918e064807" url: "https://pub.dev" source: hosted - version: "2.3.7" + version: "2.3.8+1" geolocator_platform_interface: dependency: transitive description: @@ -638,10 +638,10 @@ packages: dependency: transitive description: name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + sha256: "76d306a1c3afb33fe82e2bbacad62a61f409b5634c915fceb0d799de1a913360" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.1.1" iconsax_plus: dependency: "direct main" description: @@ -654,10 +654,10 @@ packages: dependency: transitive description: name: image - sha256: f31d52537dc417fdcde36088fdf11d191026fd5e4fae742491ebd40e5a8bea7d + sha256: "20842a5ad1555be624c314b0c0cc0566e8ece412f61e859a42efeb6d4101a26c" url: "https://pub.dev" source: hosted - version: "4.3.0" + version: "4.5.0" internet_connection_checker_plus: dependency: "direct main" description: @@ -678,10 +678,10 @@ packages: dependency: transitive description: name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.5" isar: dependency: "direct main" description: @@ -726,10 +726,10 @@ packages: dependency: "direct dev" description: name: json_serializable - sha256: ea1432d167339ea9b5bb153f0571d0039607a873d6e04e0117af043f14a1fd4b + sha256: c2fcb3920cf2b6ae6845954186420fca40bc0a8abcc84903b7801f17d7050d7c url: "https://pub.dev" source: hosted - version: "6.8.0" + version: "6.9.0" lat_lng_to_timezone: dependency: "direct main" description: @@ -750,18 +750,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" url: "https://pub.dev" source: hosted - version: "10.0.5" + version: "10.0.7" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.8" leak_tracker_testing: dependency: transitive description: @@ -782,10 +782,10 @@ packages: dependency: transitive description: name: lints - sha256: "3315600f3fb3b135be672bf4a178c55f274bebe368325ae18462c89ac1e3b413" + sha256: "4a16b3f03741e1252fda5de3ce712666d010ba2122f8e912c94f9f7b90e1a4c3" url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "5.1.0" lists: dependency: transitive description: @@ -798,10 +798,10 @@ packages: dependency: transitive description: name: logger - sha256: "697d067c60c20999686a0add96cf6aba723b3aa1f83ecf806a8097231529ec32" + sha256: be4b23575aac7ebf01f225a241eb7f6b5641eeaf43c6a8613510fc2f8cf187d1 url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.5.0" logging: dependency: transitive description: @@ -814,10 +814,10 @@ packages: dependency: transitive description: name: macros - sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" + sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" url: "https://pub.dev" source: hosted - version: "0.1.2-main.4" + version: "0.1.3-main.0" matcher: dependency: transitive description: @@ -870,26 +870,26 @@ packages: dependency: transitive description: name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + sha256: "92d4488434b520a62570293fbd33bb556c7d49230791c1b4bbd973baf6d2dc67" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" package_info_plus: dependency: "direct main" description: name: package_info_plus - sha256: da8d9ac8c4b1df253d1a328b7bf01ae77ef132833479ab40763334db13b91cce + sha256: "70c421fe9d9cc1a9a7f3b05ae56befd469fe4f8daa3b484823141a55442d858d" url: "https://pub.dev" source: hosted - version: "8.1.1" + version: "8.1.2" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: ac1f4a4847f1ade8e6a87d1f39f5d7c67490738642e2542f559ec38c37489a66 + sha256: a5ef9986efc7bf772f2696183a3992615baa76c1ffb1189318dd8803778fb05b url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" path: dependency: transitive description: @@ -910,18 +910,18 @@ packages: dependency: transitive description: name: path_provider_android - sha256: c464428172cb986b758c6d1724c603097febb8fb855aa265aeecc9280c294d4a + sha256: "4adf4fd5423ec60a29506c76581bc05854c55e3a0b72d35bb28d661c9686edf2" url: "https://pub.dev" source: hosted - version: "2.2.12" + version: "2.2.15" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 + sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" path_provider_linux: dependency: transitive description: @@ -986,6 +986,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.5.1" + posix: + dependency: transitive + description: + name: posix + sha256: a0117dc2167805aa9125b82eee515cc891819bac2f538c83646d355b16f58b9a + url: "https://pub.dev" + source: hosted + version: "6.0.1" proj4dart: dependency: transitive description: @@ -998,10 +1006,10 @@ packages: dependency: transitive description: name: pub_semver - sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + sha256: "7b3cfbf654f3edd0c6298ecd5be782ce997ddf0e00531b9464b55245185bbbbd" url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.5" pubspec_parse: dependency: transitive description: @@ -1030,18 +1038,18 @@ packages: dependency: transitive description: name: shelf - sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 url: "https://pub.dev" source: hosted - version: "1.4.1" + version: "1.4.2" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" + sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67 url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.1" shimmer: dependency: "direct main" description: @@ -1054,7 +1062,7 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" source_gen: dependency: transitive description: @@ -1091,10 +1099,10 @@ packages: dependency: transitive description: name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" url: "https://pub.dev" source: hosted - version: "1.11.1" + version: "1.12.0" stream_channel: dependency: transitive description: @@ -1115,10 +1123,10 @@ packages: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" synchronized: dependency: transitive description: @@ -1139,42 +1147,34 @@ packages: dependency: transitive description: name: test_api - sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.7.3" time: dependency: transitive description: name: time - sha256: ad8e018a6c9db36cb917a031853a1aae49467a93e0d464683e029537d848c221 + sha256: "370572cf5d1e58adcb3e354c47515da3f7469dac3a95b447117e728e7be6f461" url: "https://pub.dev" source: hosted - version: "2.1.4" - time_machine: - dependency: "direct main" - description: - name: time_machine - sha256: b39511bf66cc8553d86c1242c43dbf67a17c594d5d7124727c1fdbf331e3989d - url: "https://pub.dev" - source: hosted - version: "0.9.17" + version: "2.1.5" timezone: dependency: "direct main" description: name: timezone - sha256: "2236ec079a174ce07434e89fcd3fcda430025eb7692244139a9cf54fdcf1fc7d" + sha256: ffc9d5f4d1193534ef051f9254063fa53d588609418c84299956c3db9383587d url: "https://pub.dev" source: hosted - version: "0.9.4" + version: "0.10.0" timing: dependency: transitive description: name: timing - sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" + sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe" url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "1.0.2" typed_data: dependency: transitive description: @@ -1219,26 +1219,26 @@ packages: dependency: transitive description: name: url_launcher_ios - sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e + sha256: "16a513b6c12bb419304e72ea0ae2ab4fed569920d1c7cb850263fe3acc824626" url: "https://pub.dev" source: hosted - version: "6.3.1" + version: "6.3.2" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: e2b9622b4007f97f504cd64c0128309dfb978ae66adbe944125ed9e1750f06af + sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.2.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672" + sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2" url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" url_launcher_platform_interface: dependency: transitive description: @@ -1283,10 +1283,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b url: "https://pub.dev" source: hosted - version: "14.2.5" + version: "14.3.0" watcher: dependency: transitive description: @@ -1323,10 +1323,10 @@ packages: dependency: transitive description: name: win32 - sha256: "84ba388638ed7a8cb3445a320c8273136ab2631cd5f2c57888335504ddab1bc2" + sha256: "8b338d4486ab3fbc0ba0db9f9b4f5239b6697fcee427939a40e720cbb9ee0a69" url: "https://pub.dev" source: hosted - version: "5.8.0" + version: "5.9.0" win32_registry: dependency: transitive description: @@ -1371,10 +1371,10 @@ packages: dependency: transitive description: name: xxh3 - sha256: cbeb0e1d10f4c6bf67b650f395eac0cc689425b5efc2ba0cc3d3e069a0beaeec + sha256: "399a0438f5d426785723c99da6b16e136f4953fb1e9db0bf270bd41dd4619916" url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.0" yaml: dependency: transitive description: @@ -1384,5 +1384,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.5.4 <4.0.0" + dart: ">=3.6.0 <4.0.0" flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index 7fa2bb0..ebb1911 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -6,7 +6,7 @@ publish_to: "none" version: 1.3.6+39 environment: - sdk: ">=3.5.4 <4.0.0" + sdk: ">=3.6.0 <4.0.0" dependencies: flutter: @@ -19,9 +19,9 @@ dependencies: intl: ^0.19.0 shimmer: ^3.0.0 latlong2: ^0.9.1 - timezone: ^0.9.4 + timezone: ^0.10.0 geocoding: ^3.0.0 - geolocator: ^13.0.1 + geolocator: ^13.0.2 home_widget: ^0.7.0 workmanager: ^0.5.2 restart_app: ^1.3.2 @@ -29,26 +29,25 @@ dependencies: google_fonts: ^6.2.1 url_launcher: ^6.3.1 iconsax_plus: ^1.0.0 - time_machine: ^0.9.17 dynamic_color: ^1.7.0 path_provider: ^2.1.5 # quick_settings: ^1.0.1 json_annotation: ^4.9.0 flutter_timezone: ^3.0.1 - device_info_plus: ^11.1.1 - package_info_plus: ^8.1.1 - connectivity_plus: ^6.1.0 + device_info_plus: ^11.2.0 + package_info_plus: ^8.1.2 + connectivity_plus: ^6.1.1 flutter_map_cache: ^1.5.1 freezed_annotation: ^2.4.4 flutter_displaymode: ^0.6.0 lat_lng_to_timezone: ^0.2.0 line_awesome_flutter: ^3.0.1 dio_cache_interceptor: ^3.5.0 - flutter_map_animations: ^0.7.1 + flutter_map_animations: ^0.8.0 flutter_expandable_fab: ^2.3.0 flutter_hsvcolor_picker: ^1.5.1 scrollable_positioned_list: ^0.3.8 - flutter_local_notifications: ^18.0.0 + flutter_local_notifications: ^18.0.1 internet_connection_checker_plus: ^2.5.2 dio_cache_interceptor_file_store: ^1.2.2 isar: @@ -72,9 +71,9 @@ dev_dependencies: freezed: ^2.5.7 build_runner: ^2.4.13 flutter_lints: ^5.0.0 - json_serializable: ^6.8.0 - flutter_native_splash: ^2.4.2 - flutter_launcher_icons: ^0.14.1 + json_serializable: ^6.9.0 + flutter_native_splash: ^2.4.3 + flutter_launcher_icons: ^0.14.2 isar_generator: version: ^3.1.8 hosted: https://pub.isar-community.dev/ From a59c6b73385f0b49ae699a05cdc30231f9eef179 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Wed, 8 Jan 2025 12:22:43 +0300 Subject: [PATCH 31/41] Android 15 --- android/app/build.gradle | 4 +- android/gradle.properties | 1 + .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/settings.gradle | 4 +- linux/flutter/generated_plugin_registrant.cc | 4 + linux/flutter/generated_plugins.cmake | 1 + pubspec.lock | 84 +++++++++---------- pubspec.yaml | 8 +- 8 files changed, 58 insertions(+), 50 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index df8c4ca..e64cc16 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -12,12 +12,13 @@ if (keystorePropertiesFile.exists()) { android { namespace = 'com.yoshi.rain' - compileSdk = 34 + compileSdk = 35 ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 + coreLibraryDesugaringEnabled = true } kotlinOptions { @@ -76,6 +77,7 @@ dependencies { implementation("androidx.core:core-remoteviews:1.1.0") implementation("com.google.android.material:material:1.12.0") implementation("androidx.work:work-runtime-ktx:2.9.1") + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4") } // Remove this for FLOSS version diff --git a/android/gradle.properties b/android/gradle.properties index 598d13f..a792b07 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G android.useAndroidX=true android.enableJetifier=true +android.enableR8.fullMode = false diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 81a4301..4d6272d 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip diff --git a/android/settings.gradle b/android/settings.gradle index ece7c19..e5edf91 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -18,8 +18,8 @@ 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 "2.1.0" apply false + id "com.android.application" version "8.3.2" apply false + id "org.jetbrains.kotlin.android" version "1.9.0" apply false } include ":app" diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index c54dc17..597a91d 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -7,6 +7,7 @@ #include "generated_plugin_registrant.h" #include +#include #include #include @@ -14,6 +15,9 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) dynamic_color_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "DynamicColorPlugin"); dynamic_color_plugin_register_with_registrar(dynamic_color_registrar); + g_autoptr(FlPluginRegistrar) flutter_timezone_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterTimezonePlugin"); + flutter_timezone_plugin_register_with_registrar(flutter_timezone_registrar); g_autoptr(FlPluginRegistrar) isar_flutter_libs_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "IsarFlutterLibsPlugin"); isar_flutter_libs_plugin_register_with_registrar(isar_flutter_libs_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 13157ca..0349e00 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -4,6 +4,7 @@ list(APPEND FLUTTER_PLUGIN_LIST dynamic_color + flutter_timezone isar_flutter_libs url_launcher_linux ) diff --git a/pubspec.lock b/pubspec.lock index d28508c..633ab42 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -34,10 +34,10 @@ packages: dependency: transitive description: name: archive - sha256: "08064924cbf0ab88280a0c3f60db9dd24fec693927e725ecb176f16c629d1cb8" + sha256: "6199c74e3db4fbfbd04f66d739e72fe11c8a8957d5f219f1f4482dbde6420b5a" url: "https://pub.dev" source: hosted - version: "4.0.1" + version: "4.0.2" args: dependency: transitive description: @@ -66,50 +66,50 @@ packages: dependency: transitive description: name: build - sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" build_config: dependency: transitive description: name: build_config - sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" build_daemon: dependency: transitive description: name: build_daemon - sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" + sha256: "294a2edaf4814a378725bfe6358210196f5ea37af89ecd81bfa32960113d4948" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.0.3" build_resolvers: dependency: transitive description: name: build_resolvers - sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + sha256: "99d3980049739a985cf9b21f30881f46db3ebc62c5b8d5e60e27440876b1ba1e" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.3" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" + sha256: "74691599a5bc750dc96a6b4bfd48f7d9d66453eab04c7f4063134800d6a5c573" url: "https://pub.dev" source: hosted - version: "2.4.13" + version: "2.4.14" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 + sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" url: "https://pub.dev" source: hosted - version: "7.3.2" + version: "8.0.0" built_collection: dependency: transitive description: @@ -122,10 +122,10 @@ packages: dependency: transitive description: name: built_value - sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb + sha256: "28a712df2576b63c6c005c465989a348604960c0958d28be5303ba9baa841ac2" url: "https://pub.dev" source: hosted - version: "8.9.2" + version: "8.9.3" characters: dependency: transitive description: @@ -436,10 +436,10 @@ packages: dependency: "direct dev" description: name: flutter_native_splash - sha256: "1152ab0067ca5a2ebeb862fe0a762057202cceb22b7e62692dcbabf6483891bb" + sha256: "7062602e0dbd29141fb8eb19220b5871ca650be5197ab9c1f193a28b17537bc7" url: "https://pub.dev" source: hosted - version: "2.4.3" + version: "2.4.4" flutter_test: dependency: "direct dev" description: flutter @@ -449,10 +449,10 @@ packages: dependency: "direct main" description: name: flutter_timezone - sha256: ea53c61c9152f271a5e30624a624184804947b6a733ff2b64186bb2579446892 + sha256: "6e6a0a9d0dfc049b209e01e1dee3efd5ff2ddf2375e9de86589761b244eb5a5f" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "4.0.0" flutter_web_plugins: dependency: transitive description: flutter @@ -630,18 +630,18 @@ packages: dependency: transitive description: name: http_multi_server - sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" http_parser: dependency: transitive description: name: http_parser - sha256: "76d306a1c3afb33fe82e2bbacad62a61f409b5634c915fceb0d799de1a913360" + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" url: "https://pub.dev" source: hosted - version: "4.1.1" + version: "4.1.2" iconsax_plus: dependency: "direct main" description: @@ -654,18 +654,18 @@ packages: dependency: transitive description: name: image - sha256: "20842a5ad1555be624c314b0c0cc0566e8ece412f61e859a42efeb6d4101a26c" + sha256: "8346ad4b5173924b5ddddab782fc7d8a6300178c8b1dc427775405a01701c4a6" url: "https://pub.dev" source: hosted - version: "4.5.0" + version: "4.5.2" internet_connection_checker_plus: dependency: "direct main" description: name: internet_connection_checker_plus - sha256: "95da3194bdb98cb606b921f0e0007cbe55c32d6a7fa92d5debe59ef4183ce2a6" + sha256: "11e7ff6cbab22dbd2af4b21618dc0ffa77a345de3fdd2a138b05d17075f84ffa" url: "https://pub.dev" source: hosted - version: "2.5.2" + version: "2.7.0" intl: dependency: "direct main" description: @@ -782,10 +782,10 @@ packages: dependency: transitive description: name: lints - sha256: "4a16b3f03741e1252fda5de3ce712666d010ba2122f8e912c94f9f7b90e1a4c3" + sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7 url: "https://pub.dev" source: hosted - version: "5.1.0" + version: "5.1.1" lists: dependency: transitive description: @@ -1014,10 +1014,10 @@ packages: dependency: transitive description: name: pubspec_parse - sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.5.0" restart_app: dependency: "direct main" description: @@ -1075,10 +1075,10 @@ packages: dependency: transitive description: name: source_helper - sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" + sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c" url: "https://pub.dev" source: hosted - version: "1.3.4" + version: "1.3.5" source_span: dependency: transitive description: @@ -1115,10 +1115,10 @@ packages: dependency: transitive description: name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" string_scanner: dependency: transitive description: @@ -1291,10 +1291,10 @@ packages: dependency: transitive description: name: watcher - sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + sha256: "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104" url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" web: dependency: transitive description: @@ -1323,10 +1323,10 @@ packages: dependency: transitive description: name: win32 - sha256: "8b338d4486ab3fbc0ba0db9f9b4f5239b6697fcee427939a40e720cbb9ee0a69" + sha256: "154360849a56b7b67331c21f09a386562d88903f90a1099c5987afc1912e1f29" url: "https://pub.dev" source: hosted - version: "5.9.0" + version: "5.10.0" win32_registry: dependency: transitive description: @@ -1379,10 +1379,10 @@ packages: dependency: transitive description: name: yaml - sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" sdks: dart: ">=3.6.0 <4.0.0" flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index ebb1911..4016dc7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -33,7 +33,7 @@ dependencies: path_provider: ^2.1.5 # quick_settings: ^1.0.1 json_annotation: ^4.9.0 - flutter_timezone: ^3.0.1 + flutter_timezone: ^4.0.0 device_info_plus: ^11.2.0 package_info_plus: ^8.1.2 connectivity_plus: ^6.1.1 @@ -48,7 +48,7 @@ dependencies: flutter_hsvcolor_picker: ^1.5.1 scrollable_positioned_list: ^0.3.8 flutter_local_notifications: ^18.0.1 - internet_connection_checker_plus: ^2.5.2 + internet_connection_checker_plus: ^2.7.0 dio_cache_interceptor_file_store: ^1.2.2 isar: version: ^3.1.8 @@ -69,10 +69,10 @@ dev_dependencies: flutter_test: sdk: flutter freezed: ^2.5.7 - build_runner: ^2.4.13 + build_runner: ^2.4.14 flutter_lints: ^5.0.0 json_serializable: ^6.9.0 - flutter_native_splash: ^2.4.3 + flutter_native_splash: ^2.4.4 flutter_launcher_icons: ^0.14.2 isar_generator: version: ^3.1.8 From 416f77765c3b4436f3920cf8d9392786405e4385 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Wed, 8 Jan 2025 14:26:35 +0300 Subject: [PATCH 32/41] Update dependencies --- android/app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index e64cc16..22cafeb 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -76,7 +76,7 @@ flutter { dependencies { implementation("androidx.core:core-remoteviews:1.1.0") implementation("com.google.android.material:material:1.12.0") - implementation("androidx.work:work-runtime-ktx:2.9.1") + implementation('androidx.work:work-runtime-ktx:2.10.0') coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4") } From 0973fb5230c4977028115d9afb791f937f6f8489 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sat, 8 Feb 2025 13:09:25 +0300 Subject: [PATCH 33/41] Update dependencies --- pubspec.lock | 88 ++++++++++++++++++++++++++-------------------------- pubspec.yaml | 24 +++++++------- 2 files changed, 56 insertions(+), 56 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 633ab42..541a3d0 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -178,10 +178,10 @@ packages: dependency: "direct main" description: name: connectivity_plus - sha256: e0817759ec6d2d8e57eb234e6e57d2173931367a865850c7acea40d4b4f9c27d + sha256: "04bf81bb0b77de31557b58d052b24b3eee33f09a6e7a8c68a3e247c7df19ec27" url: "https://pub.dev" source: hosted - version: "6.1.1" + version: "6.1.3" connectivity_plus_platform_interface: dependency: transitive description: @@ -218,18 +218,18 @@ packages: dependency: transitive description: name: dart_earcut - sha256: "41b493147e30a051efb2da1e3acb7f38fe0db60afba24ac1ea5684cee272721e" + sha256: e485001bfc05dcbc437d7bfb666316182e3522d4c3f9668048e004d0eb2ce43b url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.0" dart_style: dependency: transitive description: name: dart_style - sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab" + sha256: "7306ab8a2359a48d22310ad823521d723acfed60ee1f7e37388e8986853b6820" url: "https://pub.dev" source: hosted - version: "2.3.7" + version: "2.3.8" dartx: dependency: transitive description: @@ -242,18 +242,18 @@ packages: dependency: transitive description: name: dbus - sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" + sha256: "79e0c23480ff85dc68de79e2cd6334add97e48f7f4865d17686dd6ea81a47e8c" url: "https://pub.dev" source: hosted - version: "0.7.10" + version: "0.7.11" device_info_plus: dependency: "direct main" description: name: device_info_plus - sha256: "4fa68e53e26ab17b70ca39f072c285562cfc1589df5bb1e9295db90f6645f431" + sha256: "72d146c6d7098689ff5c5f66bcf593ac11efc530095385356e131070333e64da" url: "https://pub.dev" source: hosted - version: "11.2.0" + version: "11.3.0" device_info_plus_platform_interface: dependency: transitive description: @@ -266,10 +266,10 @@ packages: dependency: "direct main" description: name: dio - sha256: "5598aa796bbf4699afd5c67c0f5f6e2ed542afc956884b9cd58c306966efc260" + sha256: "253a18bbd4851fecba42f7343a1df3a9a4c1d31a2c1b37e221086b4fa8c8dbc9" url: "https://pub.dev" source: hosted - version: "5.7.0" + version: "5.8.0+1" dio_cache_interceptor: dependency: "direct main" description: @@ -290,10 +290,10 @@ packages: dependency: transitive description: name: dio_web_adapter - sha256: "33259a9276d6cea88774a0000cfae0d861003497755969c92faa223108620dc8" + sha256: e485c7a39ff2b384fa1d7e09b4e25f755804de8384358049124830b04fc4f93a url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.1.0" dynamic_color: dependency: "direct main" description: @@ -367,10 +367,10 @@ packages: dependency: "direct dev" description: name: flutter_launcher_icons - sha256: "31cd0885738e87c72d6f055564d37fabcdacee743b396b78c7636c169cac64f5" + sha256: bfa04787c85d80ecb3f8777bde5fc10c3de809240c48fa061a2c2bf15ea5211c url: "https://pub.dev" source: hosted - version: "0.14.2" + version: "0.14.3" flutter_lints: dependency: "direct dev" description: @@ -412,26 +412,26 @@ packages: dependency: "direct main" description: name: flutter_map - sha256: "2ecb34619a4be19df6f40c2f8dce1591675b4eff7a6857bd8f533706977385da" + sha256: "82786b8e1ffbff079487eeeed59a34e8a0b09896dd7713d8e1dc193d673496b5" url: "https://pub.dev" source: hosted - version: "7.0.2" + version: "8.0.0" flutter_map_animations: dependency: "direct main" description: name: flutter_map_animations - sha256: "08233f89919049a3601e785d32e9d1d9e1faac6578190150f1d7495fc1050d36" + sha256: bf583863561861aaaf4854ae7ed8940d79bea7d32918bf7a85d309b25235a09e url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.9.0" flutter_map_cache: dependency: "direct main" description: name: flutter_map_cache - sha256: "47607b8d95ca791f0367d18955035d098faf80990e5e3bb0dbfa26271a6c2f43" + sha256: "5b30c9b0d36315a22f4ee070737104a6017e7ff990e8addc8128ba81786e03ef" url: "https://pub.dev" source: hosted - version: "1.5.1" + version: "1.5.2" flutter_native_splash: dependency: "direct dev" description: @@ -449,10 +449,10 @@ packages: dependency: "direct main" description: name: flutter_timezone - sha256: "6e6a0a9d0dfc049b209e01e1dee3efd5ff2ddf2375e9de86589761b244eb5a5f" + sha256: bc286cecb0366d88e6c4644e3962ebd1ce1d233abc658eb1e0cd803389f84b64 url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "4.1.0" flutter_web_plugins: dependency: transitive description: flutter @@ -582,10 +582,10 @@ packages: dependency: transitive description: name: glob - sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.3" google_fonts: dependency: "direct main" description: @@ -606,10 +606,10 @@ packages: dependency: "direct main" description: name: home_widget - sha256: b313e3304c0429669fddf1286e1fbf61a64b873f38ba30b3eb890ef0d7560b12 + sha256: "7430f7549d42cef2e729bd3c779de748b93f1eb78b1abfe6bca8fffd1cfce3e9" url: "https://pub.dev" source: hosted - version: "0.7.0" + version: "0.7.0+1" html: dependency: transitive description: @@ -622,10 +622,10 @@ packages: dependency: transitive description: name: http - sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 + sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f url: "https://pub.dev" source: hosted - version: "1.2.2" + version: "1.3.0" http_multi_server: dependency: transitive description: @@ -878,18 +878,18 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "70c421fe9d9cc1a9a7f3b05ae56befd469fe4f8daa3b484823141a55442d858d" + sha256: "67eae327b1b0faf761964a1d2e5d323c797f3799db0e85aa232db8d9e922bc35" url: "https://pub.dev" source: hosted - version: "8.1.2" + version: "8.2.1" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: a5ef9986efc7bf772f2696183a3992615baa76c1ffb1189318dd8803778fb05b + sha256: "205ec83335c2ab9107bbba3f8997f9356d72ca3c715d2f038fc773d0366b4c76" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.1.0" path: dependency: transitive description: @@ -1251,18 +1251,18 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e" + sha256: "3ba963161bd0fe395917ba881d320b9c4f6dd3c4a233da62ab18a5025c85f1e9" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.4.0" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: "44cf3aabcedde30f2dba119a9dea3b0f2672fbe6fa96e85536251d678216b3c4" + sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77" url: "https://pub.dev" source: hosted - version: "3.1.3" + version: "3.1.4" uuid: dependency: transitive description: @@ -1315,18 +1315,18 @@ packages: dependency: transitive description: name: web_socket_channel - sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" + sha256: "0b8e2457400d8a859b7b2030786835a28a8e80836ef64402abef392ff4f1d0e5" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" win32: dependency: transitive description: name: win32 - sha256: "154360849a56b7b67331c21f09a386562d88903f90a1099c5987afc1912e1f29" + sha256: daf97c9d80197ed7b619040e86c8ab9a9dad285e7671ee7390f9180cc828a51e url: "https://pub.dev" source: hosted - version: "5.10.0" + version: "5.10.1" win32_registry: dependency: transitive description: @@ -1384,5 +1384,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.6.0 <4.0.0" - flutter: ">=3.24.0" + dart: ">=3.6.2 <4.0.0" + flutter: ">=3.27.0" diff --git a/pubspec.yaml b/pubspec.yaml index 4016dc7..3ae9398 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,10 +3,10 @@ description: Weather application publish_to: "none" -version: 1.3.6+39 +version: 1.3.7+40 environment: - sdk: ">=3.6.0 <4.0.0" + sdk: ">=3.6.2 <4.0.0" dependencies: flutter: @@ -15,17 +15,17 @@ dependencies: sdk: flutter get: ^4.6.6 gap: ^3.0.1 - dio: ^5.7.0 + dio: ^5.8.0+1 intl: ^0.19.0 shimmer: ^3.0.0 latlong2: ^0.9.1 timezone: ^0.10.0 geocoding: ^3.0.0 geolocator: ^13.0.2 - home_widget: ^0.7.0 + home_widget: ^0.7.0+1 workmanager: ^0.5.2 restart_app: ^1.3.2 - flutter_map: ^7.0.2 + flutter_map: ^8.0.0 google_fonts: ^6.2.1 url_launcher: ^6.3.1 iconsax_plus: ^1.0.0 @@ -33,17 +33,17 @@ dependencies: path_provider: ^2.1.5 # quick_settings: ^1.0.1 json_annotation: ^4.9.0 - flutter_timezone: ^4.0.0 - device_info_plus: ^11.2.0 - package_info_plus: ^8.1.2 - connectivity_plus: ^6.1.1 - flutter_map_cache: ^1.5.1 + flutter_timezone: ^4.1.0 + device_info_plus: ^11.3.0 + package_info_plus: ^8.2.1 + connectivity_plus: ^6.1.3 + flutter_map_cache: ^1.5.2 freezed_annotation: ^2.4.4 flutter_displaymode: ^0.6.0 lat_lng_to_timezone: ^0.2.0 line_awesome_flutter: ^3.0.1 dio_cache_interceptor: ^3.5.0 - flutter_map_animations: ^0.8.0 + flutter_map_animations: ^0.9.0 flutter_expandable_fab: ^2.3.0 flutter_hsvcolor_picker: ^1.5.1 scrollable_positioned_list: ^0.3.8 @@ -73,7 +73,7 @@ dev_dependencies: flutter_lints: ^5.0.0 json_serializable: ^6.9.0 flutter_native_splash: ^2.4.4 - flutter_launcher_icons: ^0.14.2 + flutter_launcher_icons: ^0.14.3 isar_generator: version: ^3.1.8 hosted: https://pub.isar-community.dev/ From f880c5d274c9257098102148a94ffa0822a059d2 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Sun, 2 Mar 2025 15:58:04 +0300 Subject: [PATCH 34/41] Update dependencies and delete support --- .gitignore | 3 +- lib/app/ui/settings/view/settings.dart | 857 ++++++++++++++----------- lib/main.dart | 116 ++-- pubspec.lock | 179 +++--- pubspec.yaml | 24 +- 5 files changed, 652 insertions(+), 527 deletions(-) diff --git a/.gitignore b/.gitignore index 4314849..f76f15e 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ migrate_working_dir/ *.ipr *.iws .idea/ +.cxx/ # The .vscode folder contains launch configuration and tasks you configure in # VS Code which you may wish to be included in version control, so this line @@ -41,4 +42,4 @@ app.*.map.json # Android Studio will place build artifacts here /android/app/debug /android/app/profile -/android/app/release \ No newline at end of file +/android/app/release diff --git a/lib/app/ui/settings/view/settings.dart b/lib/app/ui/settings/view/settings.dart index f227b62..efd316a 100644 --- a/lib/app/ui/settings/view/settings.dart +++ b/lib/app/ui/settings/view/settings.dart @@ -69,7 +69,8 @@ class _SettingsPageState extends State { builder: (BuildContext context) { return Padding( padding: EdgeInsets.only( - bottom: MediaQuery.of(context).padding.bottom), + bottom: MediaQuery.of(context).padding.bottom, + ), child: StatefulBuilder( builder: (BuildContext context, setState) { return SingleChildScrollView( @@ -78,8 +79,9 @@ class _SettingsPageState extends State { mainAxisSize: MainAxisSize.min, children: [ Padding( - padding: - const EdgeInsets.symmetric(vertical: 15), + padding: const EdgeInsets.symmetric( + vertical: 15, + ), child: Text( 'appearance'.tr, style: context.textTheme.titleLarge?.copyWith( @@ -96,7 +98,7 @@ class _SettingsPageState extends State { dropdownList: [ 'system'.tr, 'dark'.tr, - 'light'.tr + 'light'.tr, ], dropdownCange: (String? newValue) { final newThemeMode = newValue?.tr; @@ -106,11 +108,12 @@ class _SettingsPageState extends State { newThemeMode == systemTheme ? ThemeMode.system : newThemeMode == darkTheme - ? ThemeMode.dark - : ThemeMode.light; - String theme = newThemeMode == systemTheme - ? 'system' - : newThemeMode == darkTheme + ? ThemeMode.dark + : ThemeMode.light; + String theme = + newThemeMode == systemTheme + ? 'system' + : newThemeMode == darkTheme ? 'dark' : 'light'; themeController.saveTheme(theme); @@ -126,8 +129,10 @@ class _SettingsPageState extends State { value: settings.amoledTheme, onChange: (value) { themeController.saveOledTheme(value); - MyApp.updateAppState(context, - newAmoledTheme: value); + MyApp.updateAppState( + context, + newAmoledTheme: value, + ); }, ), SettingCard( @@ -138,8 +143,10 @@ class _SettingsPageState extends State { value: settings.materialColor, onChange: (value) { themeController.saveMaterialTheme(value); - MyApp.updateAppState(context, - newMaterialColor: value); + MyApp.updateAppState( + context, + newMaterialColor: value, + ); }, ), SettingCard( @@ -180,7 +187,8 @@ class _SettingsPageState extends State { builder: (BuildContext context) { return Padding( padding: EdgeInsets.only( - bottom: MediaQuery.of(context).padding.bottom), + bottom: MediaQuery.of(context).padding.bottom, + ), child: StatefulBuilder( builder: (BuildContext context, setState) { return SingleChildScrollView( @@ -189,8 +197,9 @@ class _SettingsPageState extends State { mainAxisSize: MainAxisSize.min, children: [ Padding( - padding: - const EdgeInsets.symmetric(vertical: 15), + padding: const EdgeInsets.symmetric( + vertical: 15, + ), child: Text( 'functions'.tr, style: context.textTheme.titleLarge?.copyWith( @@ -206,8 +215,8 @@ class _SettingsPageState extends State { value: settings.location, onChange: (value) async { if (value) { - bool serviceEnabled = await Geolocator - .isLocationServiceEnabled(); + bool serviceEnabled = + await Geolocator.isLocationServiceEnabled(); if (!serviceEnabled) { if (!context.mounted) return; await showAdaptiveDialog( @@ -219,34 +228,40 @@ class _SettingsPageState extends State { style: context.textTheme.titleLarge, ), - content: Text('no_location'.tr, - style: context - .textTheme.titleMedium), + content: Text( + 'no_location'.tr, + style: + context.textTheme.titleMedium, + ), actions: [ TextButton( - onPressed: () => - Get.back(result: false), + onPressed: + () => + Get.back(result: false), child: Text( 'cancel'.tr, style: context - .textTheme.titleMedium + .textTheme + .titleMedium ?.copyWith( - color: Colors - .blueAccent), + color: + Colors.blueAccent, + ), ), ), TextButton( onPressed: () { - Geolocator - .openLocationSettings(); + Geolocator.openLocationSettings(); Get.back(result: true); }, child: Text( 'settings'.tr, style: context - .textTheme.titleMedium + .textTheme + .titleMedium ?.copyWith( - color: Colors.green), + color: Colors.green, + ), ), ), ], @@ -268,7 +283,8 @@ class _SettingsPageState extends State { SettingCard( elevation: 4, icon: const Icon( - IconsaxPlusLinear.notification_1), + IconsaxPlusLinear.notification_1, + ), text: 'notifications'.tr, switcher: true, value: settings.notifications, @@ -276,17 +292,21 @@ class _SettingsPageState extends State { final resultExact = await flutterLocalNotificationsPlugin .resolvePlatformSpecificImplementation< - AndroidFlutterLocalNotificationsPlugin>() + AndroidFlutterLocalNotificationsPlugin + >() ?.requestExactAlarmsPermission(); - final result = Platform.isIOS - ? await flutterLocalNotificationsPlugin - .resolvePlatformSpecificImplementation< - IOSFlutterLocalNotificationsPlugin>() - ?.requestPermissions() - : await flutterLocalNotificationsPlugin - .resolvePlatformSpecificImplementation< - AndroidFlutterLocalNotificationsPlugin>() - ?.requestNotificationsPermission(); + final result = + Platform.isIOS + ? await flutterLocalNotificationsPlugin + .resolvePlatformSpecificImplementation< + IOSFlutterLocalNotificationsPlugin + >() + ?.requestPermissions() + : await flutterLocalNotificationsPlugin + .resolvePlatformSpecificImplementation< + AndroidFlutterLocalNotificationsPlugin + >() + ?.requestNotificationsPermission(); if (result != null && resultExact != null) { isar.writeTxnSync(() { settings.notifications = value; @@ -294,7 +314,8 @@ class _SettingsPageState extends State { }); if (value) { weatherController.notification( - weatherController.mainWeather); + weatherController.mainWeather, + ); } else { flutterLocalNotificationsPlugin .cancelAll(); @@ -306,7 +327,8 @@ class _SettingsPageState extends State { SettingCard( elevation: 4, icon: const Icon( - IconsaxPlusLinear.notification_status), + IconsaxPlusLinear.notification_status, + ), text: 'timeRange'.tr, dropdown: true, dropdownName: '$timeRange', @@ -322,12 +344,15 @@ class _SettingsPageState extends State { settings.timeRange = int.parse(newValue!); isar.settings.putSync(settings); }); - MyApp.updateAppState(context, - newTimeRange: int.parse(newValue!)); + MyApp.updateAppState( + context, + newTimeRange: int.parse(newValue!), + ); if (settings.notifications) { flutterLocalNotificationsPlugin.cancelAll(); weatherController.notification( - weatherController.mainWeather); + weatherController.mainWeather, + ); } }, ), @@ -338,55 +363,73 @@ class _SettingsPageState extends State { info: true, infoSettings: true, infoWidget: _TextInfo( - info: settings.timeformat == '12' - ? DateFormat.jm(locale.languageCode) - .format( - DateFormat.Hm(locale.languageCode) - .parse(weatherController - .timeConvert(timeStart) - .format(context))) - : DateFormat.Hm(locale.languageCode) - .format( - DateFormat.Hm(locale.languageCode) - .parse(weatherController - .timeConvert(timeStart) - .format(context))), + info: + settings.timeformat == '12' + ? DateFormat.jm( + locale.languageCode, + ).format( + DateFormat.Hm( + locale.languageCode, + ).parse( + weatherController + .timeConvert(timeStart) + .format(context), + ), + ) + : DateFormat.Hm( + locale.languageCode, + ).format( + DateFormat.Hm( + locale.languageCode, + ).parse( + weatherController + .timeConvert(timeStart) + .format(context), + ), + ), ), onPressed: () async { final TimeOfDay? timeStartPicker = await showTimePicker( - context: context, - initialTime: weatherController - .timeConvert(timeStart), - builder: (context, child) { - final Widget mediaQueryWrapper = - MediaQuery( - data: MediaQuery.of(context).copyWith( - alwaysUse24HourFormat: - settings.timeformat == '12' - ? false - : true, - ), - child: child!, + context: context, + initialTime: weatherController + .timeConvert(timeStart), + builder: (context, child) { + final Widget mediaQueryWrapper = + MediaQuery( + data: MediaQuery.of( + context, + ).copyWith( + alwaysUse24HourFormat: + settings.timeformat == + '12' + ? false + : true, + ), + child: child!, + ); + return mediaQueryWrapper; + }, ); - return mediaQueryWrapper; - }, - ); if (timeStartPicker != null) { isar.writeTxnSync(() { - settings.timeStart = - timeStartPicker.format(context); + settings.timeStart = timeStartPicker + .format(context); isar.settings.putSync(settings); }); if (!context.mounted) return; - MyApp.updateAppState(context, - newTimeStart: - timeStartPicker.format(context)); + MyApp.updateAppState( + context, + newTimeStart: timeStartPicker.format( + context, + ), + ); if (settings.notifications) { flutterLocalNotificationsPlugin .cancelAll(); weatherController.notification( - weatherController.mainWeather); + weatherController.mainWeather, + ); } } }, @@ -398,55 +441,72 @@ class _SettingsPageState extends State { info: true, infoSettings: true, infoWidget: _TextInfo( - info: settings.timeformat == '12' - ? DateFormat.jm(locale.languageCode) - .format( - DateFormat.Hm(locale.languageCode) - .parse(weatherController - .timeConvert(timeEnd) - .format(context))) - : DateFormat.Hm(locale.languageCode) - .format( - DateFormat.Hm(locale.languageCode) - .parse(weatherController - .timeConvert(timeEnd) - .format(context))), + info: + settings.timeformat == '12' + ? DateFormat.jm( + locale.languageCode, + ).format( + DateFormat.Hm( + locale.languageCode, + ).parse( + weatherController + .timeConvert(timeEnd) + .format(context), + ), + ) + : DateFormat.Hm( + locale.languageCode, + ).format( + DateFormat.Hm( + locale.languageCode, + ).parse( + weatherController + .timeConvert(timeEnd) + .format(context), + ), + ), ), onPressed: () async { final TimeOfDay? timeEndPicker = await showTimePicker( - context: context, - initialTime: - weatherController.timeConvert(timeEnd), - builder: (context, child) { - final Widget mediaQueryWrapper = - MediaQuery( - data: MediaQuery.of(context).copyWith( - alwaysUse24HourFormat: - settings.timeformat == '12' - ? false - : true, - ), - child: child!, + context: context, + initialTime: weatherController + .timeConvert(timeEnd), + builder: (context, child) { + final Widget mediaQueryWrapper = + MediaQuery( + data: MediaQuery.of( + context, + ).copyWith( + alwaysUse24HourFormat: + settings.timeformat == + '12' + ? false + : true, + ), + child: child!, + ); + return mediaQueryWrapper; + }, ); - return mediaQueryWrapper; - }, - ); if (timeEndPicker != null) { isar.writeTxnSync(() { - settings.timeEnd = - timeEndPicker.format(context); + settings.timeEnd = timeEndPicker.format( + context, + ); isar.settings.putSync(settings); }); if (!context.mounted) return; - MyApp.updateAppState(context, - newTimeEnd: - timeEndPicker.format(context)); + MyApp.updateAppState( + context, + newTimeEnd: timeEndPicker.format(context), + ); if (settings.notifications) { flutterLocalNotificationsPlugin .cancelAll(); weatherController.notification( - weatherController.mainWeather); + weatherController.mainWeather, + ); } } }, @@ -471,7 +531,8 @@ class _SettingsPageState extends State { builder: (BuildContext context) { return Padding( padding: EdgeInsets.only( - bottom: MediaQuery.of(context).padding.bottom), + bottom: MediaQuery.of(context).padding.bottom, + ), child: StatefulBuilder( builder: (BuildContext context, setState) { return SingleChildScrollView( @@ -480,8 +541,9 @@ class _SettingsPageState extends State { mainAxisSize: MainAxisSize.min, children: [ Padding( - padding: - const EdgeInsets.symmetric(vertical: 15), + padding: const EdgeInsets.symmetric( + vertical: 15, + ), child: Text( 'data'.tr, style: context.textTheme.titleLarge?.copyWith( @@ -515,13 +577,14 @@ class _SettingsPageState extends State { dropdownName: settings.degrees.tr, dropdownList: [ 'celsius'.tr, - 'fahrenheit'.tr + 'fahrenheit'.tr, ], dropdownCange: (String? newValue) async { isar.writeTxnSync(() { - settings.degrees = newValue == 'celsius'.tr - ? 'celsius' - : 'fahrenheit'; + settings.degrees = + newValue == 'celsius'.tr + ? 'celsius' + : 'fahrenheit'; isar.settings.putSync(settings); }); await weatherController.deleteAll(false); @@ -538,7 +601,7 @@ class _SettingsPageState extends State { dropdownName: settings.measurements.tr, dropdownList: [ 'metric'.tr, - 'imperial'.tr + 'imperial'.tr, ], dropdownCange: (String? newValue) async { isar.writeTxnSync(() { @@ -622,7 +685,8 @@ class _SettingsPageState extends State { builder: (BuildContext context) { return Padding( padding: EdgeInsets.only( - bottom: MediaQuery.of(context).padding.bottom), + bottom: MediaQuery.of(context).padding.bottom, + ), child: StatefulBuilder( builder: (BuildContext context, setState) { return SingleChildScrollView( @@ -631,8 +695,9 @@ class _SettingsPageState extends State { mainAxisSize: MainAxisSize.min, children: [ Padding( - padding: - const EdgeInsets.symmetric(vertical: 15), + padding: const EdgeInsets.symmetric( + vertical: 15, + ), child: Text( 'widget'.tr, style: context.textTheme.titleLarge?.copyWith( @@ -655,8 +720,9 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: - const Icon(IconsaxPlusLinear.bucket_square), + icon: const Icon( + IconsaxPlusLinear.bucket_square, + ), text: 'widgetBackground'.tr, info: true, infoWidget: CircleAvatar( @@ -667,7 +733,8 @@ class _SettingsPageState extends State { widgetBackgroundColor.isEmpty ? context.theme.primaryColor : HexColor.fromHex( - widgetBackgroundColor), + widgetBackgroundColor, + ), radius: 10, ), ), @@ -675,74 +742,89 @@ class _SettingsPageState extends State { colorBackground = null; showDialog( context: context, - builder: (context) => Dialog( - child: SingleChildScrollView( - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: - CrossAxisAlignment.center, - children: [ - Padding( - padding: - const EdgeInsets.symmetric( - vertical: 15), - child: Text( - 'widgetBackground'.tr, - style: context - .textTheme.titleMedium - ?.copyWith(fontSize: 18), - ), - ), - Padding( - padding: - const EdgeInsets.symmetric( - horizontal: 15), - child: Theme( - data: context.theme.copyWith( - inputDecorationTheme: - InputDecorationTheme( - border: OutlineInputBorder( - borderRadius: - BorderRadius.circular( - 8), + builder: + (context) => Dialog( + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Padding( + padding: + const EdgeInsets.symmetric( + vertical: 15, + ), + child: Text( + 'widgetBackground'.tr, + style: context + .textTheme + .titleMedium + ?.copyWith( + fontSize: 18, + ), + ), + ), + Padding( + padding: + const EdgeInsets.symmetric( + horizontal: 15, + ), + child: Theme( + data: context.theme.copyWith( + inputDecorationTheme: + InputDecorationTheme( + border: OutlineInputBorder( + borderRadius: + BorderRadius.circular( + 8, + ), + ), + ), + ), + child: ColorPicker( + color: + widgetBackgroundColor + .isEmpty + ? context + .theme + .primaryColor + : HexColor.fromHex( + widgetBackgroundColor, + ), + onChanged: (pickedColor) { + colorBackground = + pickedColor.toHex(); + }, ), ), ), - child: ColorPicker( - color: widgetBackgroundColor - .isEmpty - ? context - .theme.primaryColor - : HexColor.fromHex( - widgetBackgroundColor), - onChanged: (pickedColor) { - colorBackground = - pickedColor.toHex(); + IconButton( + icon: const Icon( + IconsaxPlusLinear + .tick_square, + ), + onPressed: () { + if (colorBackground == + null) { + return; + } + weatherController + .updateWidgetBackgroundColor( + colorBackground!, + ); + MyApp.updateAppState( + context, + newWidgetBackgroundColor: + colorBackground, + ); + Get.back(); }, ), - ), + ], ), - IconButton( - icon: const Icon( - IconsaxPlusLinear.tick_square, - ), - onPressed: () { - if (colorBackground == null) { - return; - } - weatherController - .updateWidgetBackgroundColor( - colorBackground!); - MyApp.updateAppState(context, - newWidgetBackgroundColor: - colorBackground); - Get.back(); - }, - ), - ], + ), ), - ), - ), ); }, ), @@ -755,9 +837,10 @@ class _SettingsPageState extends State { backgroundColor: context.theme.indicatorColor, radius: 11, child: CircleAvatar( - backgroundColor: widgetTextColor.isEmpty - ? context.theme.primaryColor - : HexColor.fromHex(widgetTextColor), + backgroundColor: + widgetTextColor.isEmpty + ? context.theme.primaryColor + : HexColor.fromHex(widgetTextColor), radius: 10, ), ), @@ -765,71 +848,87 @@ class _SettingsPageState extends State { colorText = null; showDialog( context: context, - builder: (context) => Dialog( - child: SingleChildScrollView( - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: - CrossAxisAlignment.center, - children: [ - Padding( - padding: - const EdgeInsets.symmetric( - vertical: 15), - child: Text( - 'widgetText'.tr, - style: context - .textTheme.titleMedium - ?.copyWith(fontSize: 18), - ), - ), - Padding( - padding: - const EdgeInsets.symmetric( - horizontal: 15), - child: Theme( - data: context.theme.copyWith( - inputDecorationTheme: - InputDecorationTheme( - border: OutlineInputBorder( - borderRadius: - BorderRadius.circular( - 8), + builder: + (context) => Dialog( + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Padding( + padding: + const EdgeInsets.symmetric( + vertical: 15, + ), + child: Text( + 'widgetText'.tr, + style: context + .textTheme + .titleMedium + ?.copyWith( + fontSize: 18, + ), + ), + ), + Padding( + padding: + const EdgeInsets.symmetric( + horizontal: 15, + ), + child: Theme( + data: context.theme.copyWith( + inputDecorationTheme: + InputDecorationTheme( + border: OutlineInputBorder( + borderRadius: + BorderRadius.circular( + 8, + ), + ), + ), + ), + child: ColorPicker( + color: + widgetTextColor + .isEmpty + ? context + .theme + .primaryColor + : HexColor.fromHex( + widgetTextColor, + ), + onChanged: (pickedColor) { + colorText = + pickedColor.toHex(); + }, ), ), ), - child: ColorPicker( - color: widgetTextColor.isEmpty - ? context - .theme.primaryColor - : HexColor.fromHex( - widgetTextColor), - onChanged: (pickedColor) { - colorText = - pickedColor.toHex(); + IconButton( + icon: const Icon( + IconsaxPlusLinear + .tick_square, + ), + onPressed: () { + if (colorText == null) + return; + weatherController + .updateWidgetTextColor( + colorText!, + ); + MyApp.updateAppState( + context, + newWidgetTextColor: + colorText, + ); + Get.back(); }, ), - ), + ], ), - IconButton( - icon: const Icon( - IconsaxPlusLinear.tick_square, - ), - onPressed: () { - if (colorText == null) return; - weatherController - .updateWidgetTextColor( - colorText!); - MyApp.updateAppState(context, - newWidgetTextColor: - colorText); - Get.back(); - }, - ), - ], + ), ), - ), - ), ); }, ), @@ -853,7 +952,8 @@ class _SettingsPageState extends State { builder: (BuildContext context) { return Padding( padding: EdgeInsets.only( - bottom: MediaQuery.of(context).padding.bottom), + bottom: MediaQuery.of(context).padding.bottom, + ), child: StatefulBuilder( builder: (BuildContext context, setState) { return SingleChildScrollView( @@ -862,8 +962,9 @@ class _SettingsPageState extends State { mainAxisSize: MainAxisSize.min, children: [ Padding( - padding: - const EdgeInsets.symmetric(vertical: 15), + padding: const EdgeInsets.symmetric( + vertical: 15, + ), child: Text( 'map'.tr, style: context.textTheme.titleLarge?.copyWith( @@ -874,7 +975,8 @@ class _SettingsPageState extends State { SettingCard( elevation: 4, icon: const Icon( - IconsaxPlusLinear.location_slash), + IconsaxPlusLinear.location_slash, + ), text: 'hideMap'.tr, switcher: true, value: settings.hideMap, @@ -892,51 +994,63 @@ class _SettingsPageState extends State { ), SettingCard( elevation: 4, - icon: - const Icon(IconsaxPlusLinear.trash_square), - text: 'clearCacheStore'.tr, - onPressed: () => showAdaptiveDialog( - context: context, - builder: (context) => AlertDialog.adaptive( - title: Text( - 'deletedCacheStore'.tr, - style: context.textTheme.titleLarge, - ), - content: Text( - 'deletedCacheStoreQuery'.tr, - style: context.textTheme.titleMedium, - ), - actions: [ - TextButton( - onPressed: () => Get.back(), - child: Text( - 'cancel'.tr, - style: context.textTheme.titleMedium - ?.copyWith( - color: Colors.blueAccent, - ), - ), - ), - TextButton( - onPressed: () async { - final dir = - await getTemporaryDirectory(); - final cacheStoreFuture = FileCacheStore( - '${dir.path}${Platform.pathSeparator}MapTiles'); - cacheStoreFuture.clean(); - Get.back(); - }, - child: Text( - 'delete'.tr, - style: context.textTheme.titleMedium - ?.copyWith( - color: Colors.red, - ), - ), - ), - ], - ), + icon: const Icon( + IconsaxPlusLinear.trash_square, ), + text: 'clearCacheStore'.tr, + onPressed: + () => showAdaptiveDialog( + context: context, + builder: + (context) => AlertDialog.adaptive( + title: Text( + 'deletedCacheStore'.tr, + style: + context.textTheme.titleLarge, + ), + content: Text( + 'deletedCacheStoreQuery'.tr, + style: + context.textTheme.titleMedium, + ), + actions: [ + TextButton( + onPressed: () => Get.back(), + child: Text( + 'cancel'.tr, + style: context + .textTheme + .titleMedium + ?.copyWith( + color: + Colors.blueAccent, + ), + ), + ), + TextButton( + onPressed: () async { + final dir = + await getTemporaryDirectory(); + final cacheStoreFuture = + FileCacheStore( + '${dir.path}${Platform.pathSeparator}MapTiles', + ); + cacheStoreFuture.clean(); + Get.back(); + }, + child: Text( + 'delete'.tr, + style: context + .textTheme + .titleMedium + ?.copyWith( + color: Colors.red, + ), + ), + ), + ], + ), + ), ), const Gap(10), ], @@ -955,9 +1069,11 @@ class _SettingsPageState extends State { info: true, infoSettings: true, infoWidget: _TextInfo( - info: appLanguages.firstWhere( - (element) => (element['locale'] == locale), - orElse: () => appLanguages.first)['name'], + info: + appLanguages.firstWhere( + (element) => (element['locale'] == locale), + orElse: () => appLanguages.first, + )['name'], ), onPressed: () { showModalBottomSheet( @@ -965,7 +1081,8 @@ class _SettingsPageState extends State { builder: (BuildContext context) { return Padding( padding: EdgeInsets.only( - bottom: MediaQuery.of(context).padding.bottom), + bottom: MediaQuery.of(context).padding.bottom, + ), child: StatefulBuilder( builder: (BuildContext context, setState) { return ListView( @@ -988,7 +1105,9 @@ class _SettingsPageState extends State { return Card( elevation: 4, margin: const EdgeInsets.symmetric( - horizontal: 10, vertical: 5), + horizontal: 10, + vertical: 5, + ), child: ListTile( title: Text( appLanguages[index]['name'], @@ -996,11 +1115,14 @@ class _SettingsPageState extends State { textAlign: TextAlign.center, ), onTap: () { - MyApp.updateAppState(context, - newLocale: appLanguages[index] - ['locale']); + MyApp.updateAppState( + context, + newLocale: + appLanguages[index]['locale'], + ); updateLanguage( - appLanguages[index]['locale']); + appLanguages[index]['locale'], + ); }, ), ); @@ -1016,58 +1138,6 @@ class _SettingsPageState extends State { ); }, ), - SettingCard( - icon: const Icon(IconsaxPlusLinear.dollar_square), - text: 'support'.tr, - onPressed: () { - showModalBottomSheet( - context: context, - builder: (BuildContext context) { - return Padding( - padding: EdgeInsets.only( - bottom: MediaQuery.of(context).padding.bottom), - child: StatefulBuilder( - builder: (BuildContext context, setState) { - return SingleChildScrollView( - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisSize: MainAxisSize.min, - children: [ - Padding( - padding: - const EdgeInsets.symmetric(vertical: 15), - child: Text( - 'support'.tr, - style: context.textTheme.titleLarge?.copyWith( - fontSize: 20, - ), - ), - ), - SettingCard( - elevation: 4, - icon: const Icon(IconsaxPlusLinear.card), - text: 'DonationAlerts', - onPressed: () => weatherController.urlLauncher( - 'https://www.donationalerts.com/r/darkmoonight'), - ), - SettingCard( - elevation: 4, - icon: const Icon(IconsaxPlusLinear.wallet), - text: 'ЮMoney', - onPressed: () => weatherController.urlLauncher( - 'https://yoomoney.ru/to/4100117672775961'), - ), - const Gap(10), - ], - ), - ); - }, - ), - ); - }, - ); - }, - ), SettingCard( icon: const Icon(IconsaxPlusLinear.link_square), text: 'groups'.tr, @@ -1077,7 +1147,8 @@ class _SettingsPageState extends State { builder: (BuildContext context) { return Padding( padding: EdgeInsets.only( - bottom: MediaQuery.of(context).padding.bottom), + bottom: MediaQuery.of(context).padding.bottom, + ), child: StatefulBuilder( builder: (BuildContext context, setState) { return SingleChildScrollView( @@ -1087,7 +1158,9 @@ class _SettingsPageState extends State { children: [ Padding( padding: const EdgeInsets.symmetric( - horizontal: 20, vertical: 15), + horizontal: 20, + vertical: 15, + ), child: Text( 'groups'.tr, style: context.textTheme.titleLarge?.copyWith( @@ -1099,15 +1172,19 @@ class _SettingsPageState extends State { elevation: 4, icon: const Icon(LineAwesomeIcons.discord), text: 'Discord', - onPressed: () => weatherController.urlLauncher( - 'https://discord.gg/JMMa9aHh8f'), + onPressed: + () => weatherController.urlLauncher( + 'https://discord.gg/JMMa9aHh8f', + ), ), SettingCard( elevation: 4, icon: const Icon(LineAwesomeIcons.telegram), text: 'Telegram', - onPressed: () => weatherController - .urlLauncher('https://t.me/darkmoonightX'), + onPressed: + () => weatherController.urlLauncher( + 'https://t.me/darkmoonightX', + ), ), const Gap(10), ], @@ -1123,38 +1200,39 @@ class _SettingsPageState extends State { SettingCard( icon: const Icon(IconsaxPlusLinear.document), text: 'license'.tr, - onPressed: () => Get.to( - () => LicensePage( - applicationIcon: Container( - width: 100, - height: 100, - margin: const EdgeInsets.symmetric(vertical: 5), - decoration: const BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(20)), - image: DecorationImage( - image: AssetImage('assets/icons/icon.png'), + onPressed: + () => Get.to( + () => LicensePage( + applicationIcon: Container( + width: 100, + height: 100, + margin: const EdgeInsets.symmetric(vertical: 5), + decoration: const BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(20)), + image: DecorationImage( + image: AssetImage('assets/icons/icon.png'), + ), + ), ), + applicationName: 'Rain', + applicationVersion: appVersion, ), + transition: Transition.downToUp, ), - applicationName: 'Rain', - applicationVersion: appVersion, - ), - transition: Transition.downToUp, - ), ), SettingCard( icon: const Icon(IconsaxPlusLinear.hierarchy_square_2), text: 'version'.tr, info: true, - infoWidget: _TextInfo( - info: '$appVersion', - ), + infoWidget: _TextInfo(info: '$appVersion'), ), SettingCard( icon: const Icon(LineAwesomeIcons.github), text: '${'project'.tr} GitHub', - onPressed: () => weatherController - .urlLauncher('https://github.com/darkmoonight/Rain'), + onPressed: + () => weatherController.urlLauncher( + 'https://github.com/darkmoonight/Rain', + ), ), Padding( padding: const EdgeInsets.all(10), @@ -1165,8 +1243,9 @@ class _SettingsPageState extends State { overflow: TextOverflow.visible, textAlign: TextAlign.center, ), - onTap: () => - weatherController.urlLauncher('https://open-meteo.com/'), + onTap: + () => + weatherController.urlLauncher('https://open-meteo.com/'), ), ), const Gap(10), diff --git a/lib/main.dart b/lib/main.dart index f305b02..eea5369 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -29,8 +29,9 @@ import 'package:workmanager/workmanager.dart'; late Isar isar; late Settings settings; late LocationCache locationCache; -final ValueNotifier> isOnline = - ValueNotifier(InternetConnection().hasInternetAccess); +final ValueNotifier> isOnline = ValueNotifier( + InternetConnection().hasInternetAccess, +); FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin(); @@ -86,9 +87,9 @@ void callbackDispatcher() { void main() async { final String timeZoneName; WidgetsFlutterBinding.ensureInitialized(); - Connectivity() - .onConnectivityChanged - .listen((List result) { + Connectivity().onConnectivityChanged.listen(( + List result, + ) { result.contains(ConnectivityResult.none) ? isOnline.value = Future(() => false) : isOnline.value = InternetConnection().hasInternetAccess; @@ -120,12 +121,17 @@ void main() async { Future setOptimalDisplayMode() async { final List supported = await FlutterDisplayMode.supported; final DisplayMode active = await FlutterDisplayMode.active; - final List sameResolution = supported - .where((DisplayMode m) => - m.width == active.width && m.height == active.height) - .toList() - ..sort((DisplayMode a, DisplayMode b) => - b.refreshRate.compareTo(a.refreshRate)); + final List sameResolution = + supported + .where( + (DisplayMode m) => + m.width == active.width && m.height == active.height, + ) + .toList() + ..sort( + (DisplayMode a, DisplayMode b) => + b.refreshRate.compareTo(a.refreshRate), + ); final DisplayMode mostOptimalMode = sameResolution.isNotEmpty ? sameResolution.first : active; await FlutterDisplayMode.setPreferredMode(mostOptimalMode); @@ -277,7 +283,9 @@ class _MyAppState extends State { roundDegree = settings.roundDegree; largeElement = settings.largeElement; locale = Locale( - settings.language!.substring(0, 2), settings.language!.substring(3)); + settings.language!.substring(0, 2), + settings.language!.substring(3), + ); timeRange = settings.timeRange ?? 1; timeStart = settings.timeStart ?? '09:00'; timeEnd = settings.timeEnd ?? '21:00'; @@ -299,34 +307,65 @@ class _MyAppState extends State { child: DynamicColorBuilder( builder: (lightColorScheme, darkColorScheme) { final lightMaterialTheme = lightTheme( - lightColorScheme?.surface, lightColorScheme, edgeToEdgeAvailable); + lightColorScheme?.surface, + lightColorScheme, + edgeToEdgeAvailable, + ); final darkMaterialTheme = darkTheme( - darkColorScheme?.surface, darkColorScheme, edgeToEdgeAvailable); - final darkMaterialThemeOled = - darkTheme(oledColor, darkColorScheme, edgeToEdgeAvailable); + darkColorScheme?.surface, + darkColorScheme, + edgeToEdgeAvailable, + ); + final darkMaterialThemeOled = darkTheme( + oledColor, + darkColorScheme, + edgeToEdgeAvailable, + ); return GetMaterialApp( themeMode: themeController.theme, - theme: materialColor - ? lightColorScheme != null - ? lightMaterialTheme + theme: + materialColor + ? lightColorScheme != null + ? lightMaterialTheme + : lightTheme( + lightColor, + colorSchemeLight, + edgeToEdgeAvailable, + ) : lightTheme( - lightColor, colorSchemeLight, edgeToEdgeAvailable) - : lightTheme(lightColor, colorSchemeLight, edgeToEdgeAvailable), - darkTheme: amoledTheme - ? materialColor - ? darkColorScheme != null - ? darkMaterialThemeOled + lightColor, + colorSchemeLight, + edgeToEdgeAvailable, + ), + darkTheme: + amoledTheme + ? materialColor + ? darkColorScheme != null + ? darkMaterialThemeOled + : darkTheme( + oledColor, + colorSchemeDark, + edgeToEdgeAvailable, + ) : darkTheme( - oledColor, colorSchemeDark, edgeToEdgeAvailable) - : darkTheme(oledColor, colorSchemeDark, edgeToEdgeAvailable) - : materialColor + oledColor, + colorSchemeDark, + edgeToEdgeAvailable, + ) + : materialColor ? darkColorScheme != null ? darkMaterialTheme : darkTheme( - darkColor, colorSchemeDark, edgeToEdgeAvailable) + darkColor, + colorSchemeDark, + edgeToEdgeAvailable, + ) : darkTheme( - darkColor, colorSchemeDark, edgeToEdgeAvailable), + darkColor, + colorSchemeDark, + edgeToEdgeAvailable, + ), localizationsDelegates: const [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, @@ -338,14 +377,15 @@ class _MyAppState extends State { supportedLocales: appLanguages.map((e) => e['locale'] as Locale).toList(), debugShowCheckedModeBanner: false, - home: settings.onboard - ? (locationCache.city == null) || - (locationCache.district == null) || - (locationCache.lat == null) || - (locationCache.lon == null) - ? const SelectGeolocation(isStart: true) - : const HomePage() - : const OnBording(), + home: + settings.onboard + ? (locationCache.city == null) || + (locationCache.district == null) || + (locationCache.lat == null) || + (locationCache.lon == null) + ? const SelectGeolocation(isStart: true) + : const HomePage() + : const OnBording(), title: 'Rain', ); }, diff --git a/pubspec.lock b/pubspec.lock index 541a3d0..13767d2 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -34,10 +34,10 @@ packages: dependency: transitive description: name: archive - sha256: "6199c74e3db4fbfbd04f66d739e72fe11c8a8957d5f219f1f4482dbde6420b5a" + sha256: "0c64e928dcbefddecd234205422bcfc2b5e6d31be0b86fef0d0dd48d7b4c9742" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.0.4" args: dependency: transitive description: @@ -50,18 +50,18 @@ packages: dependency: transitive description: name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.12.0" boolean_selector: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" build: dependency: transitive description: @@ -82,26 +82,26 @@ packages: dependency: transitive description: name: build_daemon - sha256: "294a2edaf4814a378725bfe6358210196f5ea37af89ecd81bfa32960113d4948" + sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" url: "https://pub.dev" source: hosted - version: "4.0.3" + version: "4.0.4" build_resolvers: dependency: transitive description: name: build_resolvers - sha256: "99d3980049739a985cf9b21f30881f46db3ebc62c5b8d5e60e27440876b1ba1e" + sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 url: "https://pub.dev" source: hosted - version: "2.4.3" + version: "2.4.4" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "74691599a5bc750dc96a6b4bfd48f7d9d66453eab04c7f4063134800d6a5c573" + sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" url: "https://pub.dev" source: hosted - version: "2.4.14" + version: "2.4.15" build_runner_core: dependency: transitive description: @@ -122,18 +122,18 @@ packages: dependency: transitive description: name: built_value - sha256: "28a712df2576b63c6c005c465989a348604960c0958d28be5303ba9baa841ac2" + sha256: "8b158ab94ec6913e480dc3f752418348b5ae099eb75868b5f4775f0572999c61" url: "https://pub.dev" source: hosted - version: "8.9.3" + version: "8.9.4" characters: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" checked_yaml: dependency: transitive description: @@ -154,10 +154,10 @@ packages: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" code_builder: dependency: transitive description: @@ -170,10 +170,10 @@ packages: dependency: transitive description: name: collection - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" url: "https://pub.dev" source: hosted - version: "1.19.0" + version: "1.19.1" connectivity_plus: dependency: "direct main" description: @@ -250,10 +250,10 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: "72d146c6d7098689ff5c5f66bcf593ac11efc530095385356e131070333e64da" + sha256: "610739247975c2d0de43482afa13ec1018f63c9fddf97ef3d8dc895faa3b4543" url: "https://pub.dev" source: hosted - version: "11.3.0" + version: "11.3.2" device_info_plus_platform_interface: dependency: transitive description: @@ -290,10 +290,10 @@ packages: dependency: transitive description: name: dio_web_adapter - sha256: e485c7a39ff2b384fa1d7e09b4e25f755804de8384358049124830b04fc4f93a + sha256: "7586e476d70caecaf1686d21eee7247ea43ef5c345eab9e0cc3583ff13378d78" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" dynamic_color: dependency: "direct main" description: @@ -306,18 +306,18 @@ packages: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" ffi: dependency: transitive description: name: ffi - sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" + sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" file: dependency: transitive description: @@ -412,10 +412,10 @@ packages: dependency: "direct main" description: name: flutter_map - sha256: "82786b8e1ffbff079487eeeed59a34e8a0b09896dd7713d8e1dc193d673496b5" + sha256: bbf145e8220531f2f727608c431871c7457f3b134e513543913afd00fdc1cd47 url: "https://pub.dev" source: hosted - version: "8.0.0" + version: "8.1.0" flutter_map_animations: dependency: "direct main" description: @@ -436,10 +436,10 @@ packages: dependency: "direct dev" description: name: flutter_native_splash - sha256: "7062602e0dbd29141fb8eb19220b5871ca650be5197ab9c1f193a28b17537bc7" + sha256: edb09c35ee9230c4b03f13dd45bb3a276d0801865f0a4650b7e2a3bba61a803a url: "https://pub.dev" source: hosted - version: "2.4.4" + version: "2.4.5" flutter_test: dependency: "direct dev" description: flutter @@ -462,18 +462,18 @@ packages: dependency: "direct dev" description: name: freezed - sha256: "44c19278dd9d89292cf46e97dc0c1e52ce03275f40a97c5a348e802a924bf40e" + sha256: "62b248b2dfb06ded10c84b713215b25aea020a5b08c32e801a974361557ebc3f" url: "https://pub.dev" source: hosted - version: "2.5.7" + version: "3.0.0-0.0.dev" freezed_annotation: dependency: "direct main" description: name: freezed_annotation - sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 + sha256: c87ff004c8aa6af2d531668b46a4ea379f7191dc6dfa066acd53d506da6e044b url: "https://pub.dev" source: hosted - version: "2.4.4" + version: "3.0.0" frontend_server_client: dependency: transitive description: @@ -542,10 +542,10 @@ packages: dependency: transitive description: name: geolocator_apple - sha256: "6154ea2682563f69fc0125762ed7e91e7ed85d0b9776595653be33918e064807" + sha256: c4ecead17985ede9634f21500072edfcb3dba0ef7b97f8d7bc556d2d722b3ba3 url: "https://pub.dev" source: hosted - version: "2.3.8+1" + version: "2.3.9" geolocator_platform_interface: dependency: transitive description: @@ -574,10 +574,10 @@ packages: dependency: "direct main" description: name: get - sha256: e4e7335ede17452b391ed3b2ede016545706c01a02292a6c97619705e7d2a85e + sha256: c79eeb4339f1f3deffd9ec912f8a923834bec55f7b49c9e882b8fef2c139d425 url: "https://pub.dev" source: hosted - version: "4.6.6" + version: "4.7.2" glob: dependency: transitive description: @@ -654,10 +654,10 @@ packages: dependency: transitive description: name: image - sha256: "8346ad4b5173924b5ddddab782fc7d8a6300178c8b1dc427775405a01701c4a6" + sha256: "13d3349ace88f12f4a0d175eb5c12dcdd39d35c4c109a8a13dfeb6d0bd9e31c3" url: "https://pub.dev" source: hosted - version: "4.5.2" + version: "4.5.3" internet_connection_checker_plus: dependency: "direct main" description: @@ -710,10 +710,10 @@ packages: dependency: transitive description: name: js - sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf + sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc" url: "https://pub.dev" source: hosted - version: "0.7.1" + version: "0.7.2" json_annotation: dependency: "direct main" description: @@ -750,18 +750,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "10.0.7" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.8" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: @@ -822,10 +822,10 @@ packages: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.17" material_color_utilities: dependency: transitive description: @@ -838,10 +838,10 @@ packages: dependency: transitive description: name: meta - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.16.0" mgrs_dart: dependency: transitive description: @@ -878,26 +878,26 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "67eae327b1b0faf761964a1d2e5d323c797f3799db0e85aa232db8d9e922bc35" + sha256: "7976bfe4c583170d6cdc7077e3237560b364149fcd268b5f53d95a991963b191" url: "https://pub.dev" source: hosted - version: "8.2.1" + version: "8.3.0" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: "205ec83335c2ab9107bbba3f8997f9356d72ca3c715d2f038fc773d0366b4c76" + sha256: "6c935fb612dff8e3cc9632c2b301720c77450a126114126ffaafe28d2e87956c" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.2.0" path: dependency: transitive description: name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.1" path_provider: dependency: "direct main" description: @@ -950,10 +950,10 @@ packages: dependency: transitive description: name: petitparser - sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "6.1.0" platform: dependency: transitive description: @@ -1046,10 +1046,10 @@ packages: dependency: transitive description: name: shelf_web_socket - sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67 + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.0" shimmer: dependency: "direct main" description: @@ -1083,10 +1083,10 @@ packages: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.10.1" sprintf: dependency: transitive description: @@ -1099,18 +1099,18 @@ packages: dependency: transitive description: name: stack_trace - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.12.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" stream_transform: dependency: transitive description: @@ -1123,34 +1123,34 @@ packages: dependency: transitive description: name: string_scanner - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.1" synchronized: dependency: transitive description: name: synchronized - sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225" + sha256: "0669c70faae6270521ee4f05bffd2919892d42d1276e6c495be80174b6bc0ef6" url: "https://pub.dev" source: hosted - version: "3.3.0+3" + version: "3.3.1" term_glyph: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" test_api: dependency: transitive description: name: test_api - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.3" + version: "0.7.4" time: dependency: transitive description: @@ -1283,10 +1283,10 @@ packages: dependency: transitive description: name: vm_service - sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted - version: "14.3.0" + version: "14.3.1" watcher: dependency: transitive description: @@ -1299,10 +1299,10 @@ packages: dependency: transitive description: name: web - sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" web_socket: dependency: transitive description: @@ -1323,18 +1323,18 @@ packages: dependency: transitive description: name: win32 - sha256: daf97c9d80197ed7b619040e86c8ab9a9dad285e7671ee7390f9180cc828a51e + sha256: b89e6e24d1454e149ab20fbb225af58660f0c0bf4475544650700d8e2da54aef url: "https://pub.dev" source: hosted - version: "5.10.1" + version: "5.11.0" win32_registry: dependency: transitive description: name: win32_registry - sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852" + sha256: "6f1b564492d0147b330dd794fee8f512cec4977957f310f9951b5f9d83618dae" url: "https://pub.dev" source: hosted - version: "1.1.5" + version: "2.1.0" wkt_parser: dependency: transitive description: @@ -1346,10 +1346,11 @@ packages: workmanager: dependency: "direct main" description: - name: workmanager - sha256: ed13530cccd28c5c9959ad42d657cd0666274ca74c56dea0ca183ddd527d3a00 - url: "https://pub.dev" - source: hosted + path: workmanager + ref: main + resolved-ref: "4ce065135dc1b91fee918f81596b42a56850391d" + url: "https://github.com/fluttercommunity/flutter_workmanager.git" + source: git version: "0.5.2" xdg_directories: dependency: transitive @@ -1384,5 +1385,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.6.2 <4.0.0" + dart: ">=3.7.0 <4.0.0" flutter: ">=3.27.0" diff --git a/pubspec.yaml b/pubspec.yaml index 3ae9398..3a05cc3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -6,14 +6,14 @@ publish_to: "none" version: 1.3.7+40 environment: - sdk: ">=3.6.2 <4.0.0" + sdk: ">=3.7.0 <4.0.0" dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter - get: ^4.6.6 + get: ^4.7.2 gap: ^3.0.1 dio: ^5.8.0+1 intl: ^0.19.0 @@ -23,9 +23,8 @@ dependencies: geocoding: ^3.0.0 geolocator: ^13.0.2 home_widget: ^0.7.0+1 - workmanager: ^0.5.2 restart_app: ^1.3.2 - flutter_map: ^8.0.0 + flutter_map: ^8.1.0 google_fonts: ^6.2.1 url_launcher: ^6.3.1 iconsax_plus: ^1.0.0 @@ -34,11 +33,11 @@ dependencies: # quick_settings: ^1.0.1 json_annotation: ^4.9.0 flutter_timezone: ^4.1.0 - device_info_plus: ^11.3.0 - package_info_plus: ^8.2.1 + device_info_plus: ^11.3.2 + package_info_plus: ^8.3.0 connectivity_plus: ^6.1.3 flutter_map_cache: ^1.5.2 - freezed_annotation: ^2.4.4 + freezed_annotation: ^3.0.0 flutter_displaymode: ^0.6.0 lat_lng_to_timezone: ^0.2.0 line_awesome_flutter: ^3.0.1 @@ -56,6 +55,11 @@ dependencies: isar_flutter_libs: version: ^3.1.8 hosted: https://pub.isar-community.dev/ + workmanager: + git: + url: https://github.com/fluttercommunity/flutter_workmanager.git + path: workmanager + ref: main # Uncomment this for publishing FLOSS variant # dependency_overrides: @@ -68,11 +72,11 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - freezed: ^2.5.7 - build_runner: ^2.4.14 + freezed: ^3.0.0-0.0.dev + build_runner: ^2.4.15 flutter_lints: ^5.0.0 json_serializable: ^6.9.0 - flutter_native_splash: ^2.4.4 + flutter_native_splash: ^2.4.5 flutter_launcher_icons: ^0.14.3 isar_generator: version: ^3.1.8 From 97aa5024b42d26fddd15e340751017e667392ee0 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Tue, 11 Mar 2025 21:01:16 +0300 Subject: [PATCH 35/41] Update README.md --- README.md | 3 +-- pubspec.lock | 32 ++++++++++++++++---------------- pubspec.yaml | 6 +++--- readme/1.png | Bin 98776 -> 147173 bytes readme/2.png | Bin 88790 -> 140231 bytes readme/3.png | Bin 75551 -> 117014 bytes readme/4.png | Bin 58504 -> 189489 bytes readme/5.png | Bin 0 -> 98635 bytes 8 files changed, 20 insertions(+), 21 deletions(-) create mode 100644 readme/5.png diff --git a/README.md b/README.md index faf32d4..5bac5a1 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ We fetch weather data from [Open-Meteo](https://open-meteo.com/en/docs) and use ### 📸 Screenshots - + ### 💰 Support Us @@ -52,7 +52,6 @@ If you find Rain valuable and worthy for future innovation, consider supporting ### 📥 Get Rain Now [![Play Store](https://img.shields.io/badge/Google_Play-414141?style=for-the-badge&logo=google-play&logoColor=white)](https://play.google.com/store/apps/details?id=com.yoshi.rain) -[![RuStore](https://img.shields.io/badge/RuStore-blue?style=for-the-badge&logo=vk&logoColor=white)](https://apps.rustore.ru/app/com.yoshi.rain) Or get the latest APK from the [Releases Section](https://github.com/DarkMooNight/Rain/releases/latest). You can also find the app on IzzyOnDroid via a F-Droid client [here](https://apt.izzysoft.de/fdroid/index/apk/com.yoshi.rain). diff --git a/pubspec.lock b/pubspec.lock index 13767d2..64b67fa 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -122,10 +122,10 @@ packages: dependency: transitive description: name: built_value - sha256: "8b158ab94ec6913e480dc3f752418348b5ae099eb75868b5f4775f0572999c61" + sha256: ea90e81dc4a25a043d9bee692d20ed6d1c4a1662a28c03a96417446c093ed6b4 url: "https://pub.dev" source: hosted - version: "8.9.4" + version: "8.9.5" characters: dependency: transitive description: @@ -250,10 +250,10 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: "610739247975c2d0de43482afa13ec1018f63c9fddf97ef3d8dc895faa3b4543" + sha256: "306b78788d1bb569edb7c55d622953c2414ca12445b41c9117963e03afc5c513" url: "https://pub.dev" source: hosted - version: "11.3.2" + version: "11.3.3" device_info_plus_platform_interface: dependency: transitive description: @@ -412,10 +412,10 @@ packages: dependency: "direct main" description: name: flutter_map - sha256: bbf145e8220531f2f727608c431871c7457f3b134e513543913afd00fdc1cd47 + sha256: f7d0379477274f323c3f3bc12d369a2b42eb86d1e7bd2970ae1ea3cff782449a url: "https://pub.dev" source: hosted - version: "8.1.0" + version: "8.1.1" flutter_map_animations: dependency: "direct main" description: @@ -662,10 +662,10 @@ packages: dependency: "direct main" description: name: internet_connection_checker_plus - sha256: "11e7ff6cbab22dbd2af4b21618dc0ffa77a345de3fdd2a138b05d17075f84ffa" + sha256: eb3a6f03e7b1641589f580993d29aee0b3c4920fc618f7556de359fedb87b02e url: "https://pub.dev" source: hosted - version: "2.7.0" + version: "2.7.1" intl: dependency: "direct main" description: @@ -870,10 +870,10 @@ packages: dependency: transitive description: name: package_config - sha256: "92d4488434b520a62570293fbd33bb556c7d49230791c1b4bbd973baf6d2dc67" + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.2.0" package_info_plus: dependency: "direct main" description: @@ -910,10 +910,10 @@ packages: dependency: transitive description: name: path_provider_android - sha256: "4adf4fd5423ec60a29506c76581bc05854c55e3a0b72d35bb28d661c9686edf2" + sha256: "0ca7359dad67fd7063cb2892ab0c0737b2daafd807cf1acecd62374c8fae6c12" url: "https://pub.dev" source: hosted - version: "2.2.15" + version: "2.2.16" path_provider_foundation: dependency: transitive description: @@ -1006,10 +1006,10 @@ packages: dependency: transitive description: name: pub_semver - sha256: "7b3cfbf654f3edd0c6298ecd5be782ce997ddf0e00531b9464b55245185bbbbd" + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" url: "https://pub.dev" source: hosted - version: "2.1.5" + version: "2.2.0" pubspec_parse: dependency: transitive description: @@ -1211,10 +1211,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "6fc2f56536ee873eeb867ad176ae15f304ccccc357848b351f6f0d8d4a40d193" + sha256: "1d0eae19bd7606ef60fe69ef3b312a437a16549476c42321d5dc1506c9ca3bf4" url: "https://pub.dev" source: hosted - version: "6.3.14" + version: "6.3.15" url_launcher_ios: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 3a05cc3..8f6938c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -24,7 +24,7 @@ dependencies: geolocator: ^13.0.2 home_widget: ^0.7.0+1 restart_app: ^1.3.2 - flutter_map: ^8.1.0 + flutter_map: ^8.1.1 google_fonts: ^6.2.1 url_launcher: ^6.3.1 iconsax_plus: ^1.0.0 @@ -33,7 +33,7 @@ dependencies: # quick_settings: ^1.0.1 json_annotation: ^4.9.0 flutter_timezone: ^4.1.0 - device_info_plus: ^11.3.2 + device_info_plus: ^11.3.3 package_info_plus: ^8.3.0 connectivity_plus: ^6.1.3 flutter_map_cache: ^1.5.2 @@ -47,7 +47,7 @@ dependencies: flutter_hsvcolor_picker: ^1.5.1 scrollable_positioned_list: ^0.3.8 flutter_local_notifications: ^18.0.1 - internet_connection_checker_plus: ^2.7.0 + internet_connection_checker_plus: ^2.7.1 dio_cache_interceptor_file_store: ^1.2.2 isar: version: ^3.1.8 diff --git a/readme/1.png b/readme/1.png index 2185ee0e7102e2b450ec3168b29149fa28ddb1d4..c74aaec67c474c7a5bf538e745cb166302240590 100644 GIT binary patch literal 147173 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 z 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�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 aeNtg$TP6B25y@EYNaKX&oi z->gbwSCP*jd#BSvgfryJ#8E%LiVrvR>7w&vvr8f7>`gIgqMuk614uiR-+$buVkvg# zEVJq!ktD`f3DdX9O(Ag}0vhH2*tZbRL+YSX!=X-mGcs$_7{`y+HGXL(Sn|h~91VKI zJ>Q?Dfy9_yj=Y?%8k_vT z2jr${=mz;gKNhSB~v&78z2UDK_5xG`nWrsk_zw&Zkza z-{lN0Oo}E27j^nd{J8zk-c*A#xzr~G1v*f?e`s#z+O&alO9W&&p%K(>CF~JlHS3W&L|xoMV#bj#;pA1(Yqgq} zT4OphY!5Q@DwOiy4X_^1*niA(b=)P^+-teCp!S(wpdO24aBlxfTl2s?jWKZ{VeR@) zKXXg% zX^=E!Q{M7^Xxe(9`TDcTwA@~qEnHlIo1N0{J)`~XyL;HJsORWD;yq7uhPkR|mPs#s zp88Zt;!89xExq-uUTZvgWu?)voN~UC&t2JiDfZoTVn$8m%~qvyingxqdfoN{qi^rr zYGVJIEOh0~9`!JN8cupO#UHfLqw&oxSpCPfbJ5X~XPPSy`Oe3u!qc598_bDsa&~v$ zL|a+2sGfbd>dG4t9W9|opUi!}(9n0O)IS2}#LuQI6auz$HQ1knJ`l)}N-wUo5ET16 z;ZUx>(w|>_G3pv$W3Y#>w78$}CS-{5NS7B2ZGA~RU}`ON-}OvRt~;}3&XaF_YHOKy z9xko2NJ@AcQooUvw5*C2z4bVI@OR?OV*9@iOE?E#+h0cOj?K^Kcje8sJ^0Q2#0UMs z_BwH8&&BP6t0T3X@r}JQ+qlkkpn2?i;4(VutTU41X44-~R6MA}B51`pqCMjA-Iv3^ z^30Io0zU-1o<$@$bOwpg~< zrz(1GBcHpP?p&W$Omwu6M1a4#E}t_eS4Vy9896aAF;78e_W#G1-daZ4RxQ`MLBB=@ P{GB*@TDM5sI_!S{*Cs8Z literal 98776 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

BT!7G?afJ$9(g# zEC>b?m+#{EI@#v=dawAefFLDX&}4rj5U<>wdCR14OQ@E>1>O!*_f*FxPVb(?lqNSwgB_oFd=GaSR$leLrRyFZy{pdOf{7= zRf>US4ZXqdPsxZ0$NWaGn=r2%Ewh22uplb6@>W<$2)(LW*4NCQHCm5#sHATW{~2wh zczEzQkUJhwhN5P9ujs4x7fLb(D)Zzg#g=YkdoKwil~%|J42;lcIoXB8BDvbbGVG#{ z(7Lf9Okay*Qxsw!-L zciUk=GB&{&SplbMd&6I6;XoV>w^@?+g`aPbNXuqPivOSOD+*tDU&8gcGMhc!(@3Ce zH8?5xqCbVHX68nLuX!~`8z+1uoxRlQ?+Po1*J`t~M}C2JKV;92^7keMtui}57uS=P zI&xS%H$|bnJiGjp3_;0syWR!};z-zLZ0)qa13p`8P7vQVsxO1y+aS2NEe^ltKU?oW zMW(D(Nr25XQ@~LS1(Z)uPA`-?&jKY>(&5^ijDa~NlH$4MZzwNo=L`e8#kpuWF-m2~ z(Qaldk{4Bi9qRFm%~4}|iN=MfpwdBVvW$ztd`vN?#{sy%Vl*m}2V@#D7z>@eN-h@h zZ#z=H@}}KLiQ^KOHDd8SRiQZFW0{wP;bv(;QR+cN@{T2qd6ogNErL9l+#CGJ-L{h) z*E)5CI4LadKMDrgW41J3KhyuJ5I2_y>qNCD65bMBLJgjnD0&Sb|LYNYl1}31Cy%-| z2SJ^dh2RuBNZwy`@kU3p|9^{0=yRkK! zU&yhrr}Jax8&3zr1Yp9+xuP=Em6bzUw!KtdM$M|}nUxh|iEMBv)@dyY89_DWKCil4 zy}*QO;Zn)ee`dNTnPLhPrSx|yABKv>MntiOP*~C}u8jfIk8R?O8lYzud; zoaVOC_SxITI8Pp$}Pk}e;j1{(h+u6;DtHsYu&ua z#XQpr0$ZM5^N;;zzuN4gBOTxB%L{nYmwHlbr0!1i?ptx2JRXl9yA+e(ygsxTF4{1Z z+w;vV?B=7p!&!`#yX@7o!{nej_W}&F6%y8LlGF}bmp^zyp$gLqk8|LJj)Q)wX#%PM zpF+yH*7e8g4RxSRKfcoQP8MLqO+c{8<24aGW-XuOJ%feWn@5#%j;gYdeqaY@?}d`? zmc53TBY~C2M@pHWEoe!9$kYm(QzXz&z%WVVi?ND9McbYe)Sp~f*YF*#y3LPKmluTQ zXbu{Q-`yt(Z;o1@ld>$cj2-Biv&Z-YA(A=*nUwv-j2-_&P00wUZ{K4 zQ1_kN5G`fjR|kAs9O8bqsFtlYslpv%)9^HA@QMgJhecW+J%#hGhrv-<`4`^jG{dyUpZ@;)L=LnEwh1e)7^qtqYOKMWgiThVK)dv?3-FgsEhDoZe1>3TJ2 zoMn-aBo#-95g$Y!DjKIYddpTpA3F#)ACk9mRS(;G47+#aYx}s;PR{?`q;Rdew1+AtQqxs&n_yY_j zZUVZWRmSp{^hfOB9&k8xJjjm=n#_MKJ>j0iv_A|gD^_Ke9(_vVyhK@8ut1EAE&Edt z*Vnv?zT?^+BGH}wyY{teH9+e8XK}mo!&7YK#`VYq(a(yps^$&!PhGH42*}r|7vc(2 zngHgOeT<=N_fqP6hVf*WY(z7^G6WYJD-1e;pbGKqpyp=5Y0@VbF<8ueXXkAZt}&S$ zeJ$xN1Smb=wj1$b=&Rq489kjxT&0=O#RM!5^(9;t2%^yI76B8xSeg@IBx@syUMq5n z5;}Je63$6wbJJ zF)^Mmj1pQgvPqY8R|{QKj8$?ZBfW#x*3EfIOI*xwYpxx;)bK6~p@3bJqtGeu##3eE zsDbOLy?q_^158O25wM>G6-Cq(2AzYb%q^vwWEJ0Dk(r&Q+?=81RG6L3 zS_l=dFo$*m&b4gs=J=z(GoaD-W$ujzYW8O!>xdF-t09!LGff|<5=cFwEDSu*XY_{u zq{CW;|7DYLsq4dsYi99hIo`cuOcDokQ}yg32f%a+wR=mC$HgT%K@UL>IL71@boM@N ze&;aSoBpd73wbqV@V_TpAHCaZ5 zn9+0TGoZV4g;;*F<7iwG>Ze%r6R%D~Zk=rl>7TWc;t`KHGv*<}r-0)=4PoQwWjYO* z10DMIPvOc7Q7Hs@x(M42OGxAxyJrx&+I1jN_OTf9N%5W#X)QV548@tvBMV~1gl&hx zj9{&RwaS~F8-rRg&?i}|nPiJTu%@8dbQr@sji^;VQvj78(kyz|=}cVK*eYW`1(o|* z86MZKV5h=$J(^kHlw=UWw9$D3!Kan2aZpP0;Rit;vApq4>iOGvv?X(5=G0UIla{dh z7V)1Y!|A)A=xPjhj3{(0A0a{OfF%m#>TBiMco6p?fp*59lNOW$jpKvC^~XfP9IT*L z6+{B!oOq4?ddsxS$Rr0Iuo7MkXJcfl2rMht?nZ{zg$M`tV(rUUVq0L`j&RIS1~5h!<$&>V855Guq7>6QS#Bc!~Mmg`zS#!FdA>;yf ztxZkHj*n%&s-OeRJ3YdBCgYS?Onh}%e2~D8))>@yblzNWFexWzsDxPM?GR4~?%?PC zZLS>$%r>6ZHui*yRq#X@ri*bQ`T*?))uH9OpZ^Mf`v@<`!0TpE`)PlcIg2xKS6j18 zi;17ZvoU>DmAr9;&6ynOmX$|MS|HA3S!PD{`bJ>0CuQE|B^Ks1dCvC?XY34uY0A8r zKcv7L_yc+!i)h;*Tm*E3u0ElOBxv08W0TJa#&oqMayG(PQwXWo=%3|ec1jn>i=_Q^ zUG+@UgUD;fEYhUqh=4c`*$JAsim9orMp$gAn4@--H(`i(S0TK`{K|=V!nlsWNH)y! zT6EUy&<8!ajDB0BM-47K-AWbI>jq`VBpc~4J3fo{Fiv8$`3l-7u98t_}`TZnyAMA=?laui;UOT_R<<_(PFT+&|)|;YSTFf zF?ab{3zcUkT2VhuhS4a^RLA2GiZK(ds|UVjGUT1+pfFpKMMjsINuzS_uEZnL;_H0% z)nkjI^Hqm6Zvz*AguQgV%0|191YAj0ix?dfl+D@R49%VDjV+_t3B#mnQf&cZhKB!C z6C`(_q}H5TDG<6NODyZQj?Tc`c$_y-Z$B_F+=%J(#X!=cSE5S!g(#rsj&>@kTed?R z&BQML79S|k#E%b!+j`I)1UpCprnPhd=mWdzEEbWnkr6KGH4Z96`}Rta#|)lIKc@TM zKn!)Ij}LBu{1mk9r-CIy3HaTGIyWf={HUy6mvSGU_(w!Rw%sKVv9YPEMdnXq&I#pl zSc>O@S1K)bsSQ=NYRRYcmi#iiW*h0RjW|Rr&-5GBjP=aX`OeP6T8Wi-NIKv9=sgC) zJ1i$u2FCJr*gHpj(JBT`R2XKJI#gb^!olKm2{Sj(<8>BCh^{_pr1p)X<~1{Gzhq3NMbe zsl8fpU>}5HQx5s|QF7$X-(2xp@+YU6wrp{U&+6+jzR?|8YKP;qBCw9kn{f(rb|08( zZw383t!iw;2^UzyY>MO~^S^;V+j#Sc!fS%E!l$C_TWLJ1P3D}aU)lpe3D3WY(j`k~ z`w%t`u+4Rjxdp+6|Bx;1SHuQ4alFY7q5M9*hAL6a|8Cn5EBm!7Qt*kEpgn3}>&q2F zS4P=%ZE}mAl6Wu|+NFNbIf>D@R9HlJ%!UT6lG8su48q}K_9``#;_rnl6flx~qQvT% zusRyqy%0TYT9VA*jQ~|1L2Gec%~f#v2v_E>!GG&(7G{J8Fe%nkjd{09!~|pI%4De# z1;b!FN~HVd>9a-Ap9n<4e=+FCJSdoac{Z}RzdH3@XwBIX=OhbneG$u~X{scRcoOnL z3C@^Z(xuj=%{RpMtu(N0@kaY zRJg%8pHhJ*s?ahfm!@1O-7`Sv_NOt#O>us;LOC>L2yB2{Dt62*Og|q5YhFJ67A!7YHk$p~%ylkivnOIQ zfcrgAIi-XZzwV$SYtMwEpuCO!QNll2HqKqMoYYb9B>P-$DL*Un(*my~Fb* z`a8*=jf|0w-k%BZ_^CFffzOe8vJgZ3(+YZNA4fe6icjfj59!lK9-*hr&dZfnUk|m4 z+zM*|F(!0@2-W-PZv*pwO^w1!A7y!tlx(I|AFIg{d;Un@fz^g+r^b#8vDzVX{N1!$5*}ppGf0^{o)Wr* zpUTO(qQAAv`w3BJsR&x9xLE`J&wUu~;dU#JqLl~vqGTTh6OcWU$21dinqhrgmEu8W zlH?+$(sgFwMS$V4*rWy^IS#kur2atzB2bKgS{yL#4E_2RNq-n2{AWxSTnU4`$!&!2 zq8f5N`h=kT>=mijw3r-lN{u*0_G{p9kFpP?<`95T`I5VAQH&04z1<$4=7; z_B7v0+p5Q%Q*W6}kwW(|!b`+Y*9XE8tu~K80xWXrmcrXNRm<=qc3}2O`Jo~f-n8#amcoEuO??okpLhoF3`mYi z3i`tZ9$(1#GJnkE(-|FGqZuutM(2G0S$kYjXSvK{d2UQy^p%(99}IY8Ah}~}^gai~ zYQpmm+_U0u%rjNmIUv(LCPBh@!Vc*CgZgz9^dZGr-%CQQD?QL#q)P5c^eRV2_=$(u zj*Oip(Zq%xYtM#8rKaz9k8@-?ug^#t7kI^!d|V|QCN;|!bXnxNRqP_C=c}-@FiHo% zMBbm-lnpX}Tf3-AW$H#+u4?^UAvT!l&=stq?~R?WG_qplU1%(_{dihNFH0!>MU{MJw`AyBbQm({ zXe`8p{iG{!W({K?U(c+J=MWc)%B2?b!QYM7C;h8SA!*@ItfX@V>igp$m@iZZ4tbGK z98!yQ%{yAI5B)-(#j6#K8G5?o;5awT6Zgfqe+izq?1q591bUQ?Zsl=n$Q}7GZkHTL zwWj};km%H2iPZ6M1~xM*Ug37?6Zg5kK^0TRhW_;NKm6hyG7wOEzBXb(`Rs$oX^kZV zjt*Hr00RzQ6k@>uK=U3p#io4SDwy`g2r45Z!*OTlW8GwhFN&JP+fHv9-*<#LwmD@L z6$WSt{A6L5SGVQ8?pQx0x4S#3l5MlI);iC}NP~fR6G@P;fx9}+Pz-ToK_3N1AWG7F z9S|AUU$-|btz#pl>RjKzYCIs7l#)_#>uP2C%tQZcVWAO4-je{nEt}tCw^z}hAeBiw z>Td)>6see5ra>6X>$(O6^>L7uvHb@2DAMHsnIK4sCn~X20RrgNT;+HHoe6;L5m26& za88No5Ng0PDM1dHuR=6JEAW1J>;}KQc{}7aEzxaV%GvkJlV<+>u7QGkIe&a;UxBh0 zZs72H3fT-#Jt4MHM8Q_82UYR?$xh(qeEo}+Ix8?w`nGra^_w|b%LX@Y;t@{Yc|-LN zeraM06qu{b%Surfd8k1@P2)hm<^v5~a)NIy>(K`q2265;5pC)Zo!@V+oF+ltnm*9(%2w0!Y_5To|V4dRe15SbacI?LQfxt zl=mi%EFNEgKBMPzw%g+tYIm$SW$@Tpp~rUMpPDWdeviw()b4-Sb$XQtlDl?K$>Z18 z-j@>U;1cDF1&Epw&4cjvv%%R~7vas(6n6G%%lmVW5?ebos^6&!3WM?N|3?Oc{-lgbV z{Ume{r+&5Hb^Lc8kWW@o@yqFGlQg90Ka>y@8Nml@z0jDk{#Gjq%QA=G7n3w!1MTE; zG@{~FRGbE@60iCSJH!K7U8GrYD)D4WyohZKHe<6oRWaxSosPsJuewYW`?iS!3d%RS*?nvuOk@t zV!jdYgrJnphokpP?%c22V}iI~qkn*$ftLHz)6-+$5eW|H;DO7206>%1hVj+UnwCGF zruIZA`uz1{{d>4Klu(P8#SceMyuL9aLWDozw0w4O$JtoDv*tiwc%3r_W8eFQI7g8-`wO*U^7` zf$(ekv62k1g+RUe?A85R%XR3sP{d28fLsweCt^GhpJNQK#hIpJD&%)sP7{2vpZMSl zbwbG%lPmD^@_ifCF%10kry&}1Dq`TuhV9^YO0>k$gImA?Ce~V~EtOVRR*UBG`4t*- zND*!QyXs3n>APlY*;3Clv)|3QfsxcKTHR%NX)Z?3^m&V~k|y)k`eV)`Q)}mCX?%O= zz|hbGH$+nSsg5TWOf7POrRAt;pDrH3`3MjRApIVjFkI2~W??WM0{;KTb4|qIbof^S zdhL58->+aXMw&cd0OW#xy?}4TKydEqU-oHXmJK$Qla^NNC$-%c&zJDw>l&I|Q5BcO z$4tG5{t%SFA_t(tB`vgBFP6G3nQi~Psd=}rU#B;lSl;3wk;g`an)qsgz^X?^e1&&DUG~m-AF0gJf~lv`tF%q>ex}%QATWm+{hE zylW0xa}|H^gGO#ast_n3NT_76rm#37mBAx_(>3Df8ri&u3HpC9(8hQhlZPC^$2E=j z=t|kT7JUWx7+NS2^oA9~7*b&o=Hz(_X2XpYCr^iY>X%{vx6-gp$Jy(S`!leF8C80E zB&*pe*6a?j81+QV=D^e}jlJFcRFGV>*zWzbq5x%gb2usW*Yg?(2q@B9P$DyAgiIBX zgFt$4D5>jIjEYRAYp8MIZ@=>c`zj6CN`eL&NG}~qw&%7({;2ClR!+#Bo&j$68b2yy zWX1pyWLOlUuM~Z|He*S2p4Y*+K^@i?S-j_4{Z0fK_^#u2sF7Ht;lbR?RfF1IUs$?d z5@??T0z_4pRT2N7lQz8kW!Rx6_q}~&eL0!-kAc2qd(pY_B|pgoAVH8}}a`k?Wtc#1w@bf*{@O#6FADm`+ z2>?k0msAv9#Agiq_si{`&rFq&luRMChV2SxB0?33Z2al4#~KG;!fC;GqH6s*(Wo(v zp1YE;enU@FJ5;azT*o;|&}U$HSjZ!iLiNWbS^O$HE79x`t58c}vBJJRILOr7u} zN6>~#OHA|;q{Tger5O-BpwEXZeCDXc*>I8VG2oCXwN&^95CDDQy2km(G_Nt>N!9vB z7*((0r&&a-Q$7vfa~N(iJO{T*$=v_I^+O1Ch5lq4;t>XFGSt+hC+dT#mY6Qnap4|~ zIy0Ar?{SUSv|_y<%%JI#MMh=@#bxxnm$bC>Zn}jb-fgw*diuO({-P5pbv(@*_I0iNPg=ULVQ8nt8%veuT&@`e&$o%{mnpwzR z!2kXxH?llMV9{YKtBn?4PvTW#a5Re*>`@UZIE~l*gspIugGwJ2)4AJ zx%7SRu+b+*4j%vG4D52;DpWcWM4|_jj>#~ikcNi>2o-pv2LNd-QAubK_=mrTCAxG` z<{$Qd2mn0h&)t)vUYSN%$Mr(r!tv4nxbE(seGz(kPbn-Lh@21AxjKH>`Z`I6TycmY z-A-Vm6P)Lmpnp~TeMZ$vDog}swU2F1iLfYh(+mOanI>K*uN}E+k|05l03p-@vT~8= zsvr9uc{WPj$M!)!Vo`#ZKpk)Je&a!_$LUk^`G&n*WU=!7oJ1-lr{fYQ`p*)R4!__9 z-c$W5abkQ<%*F;0Bqu(Luo=AJxOq1+O&HZrdE5QoPg+o1jL*{f2<3ORc?qwvxKKWS z1xNzjJUd6~M5do$o}~U#ho596Aeu14+r%!5rIa|Md%FrT(@ini@h96d{X}Aj!zvf2?m&Ru-q2_Ytpu%VR!BFOIcc^*6tC5$UkD?azAD`vAj zM|E6Sglo&WwkC>cI=aD!|4=_$_l1M$pHt>pFr)lR@oTVGPtCH-$>>kJiKc7+7sf6l zA~(}yT0A~z5cMJ1nTO%C_i)~+{eWKAbwnlpuiW);r}-MNeqF$GcRdoJI_dB5!UHMU z8>7cGsD0DJof=_(#C)z6o-G*!ccHJbZFS}FiZ6e19|7(KR`_op(_Mp`LxOmY%G$gSDm03N z>GkZMXP5qg0|S*tC!!(U z5p{B6?Y@h4*!@m#GNsdBHEQWBHkHl}oBQ6^A9pJV01PC~AX!8`vlVJ09!}qwP}>nC zxC`;6)b?>L`p?n*4d3de(^^zH=h7Pt;k>UJ-aX;()W|#k?W08HD24Tc60Uc+YcQ8f zj!`=AUW|xV7r#1qcwF)N5Wu!6XIwpkE_XkXW`-9ikG8rkxRU2#xj40a4NTSLwC8Bd zC(L6|BS8OZvS0A8zDaG_ZZ+@tuJpqHgIGDb+1lFL)qQ)@<16X=k3Ar5=Fa=-dyY5c zI}$z{^mt7x#?7eQWNaB`BsdQE0&<8I&Z)I(=GWnm+oSA5ZMSCYa3H<1Q?6DRDB^LN}k)XuY44%WmfUZ<+Yh%pU8PE=1mcpS7E zohP<90yiA-7BO{CTd4j&SiZHPl75Tw7XGVTH~lZG8nrvs75hIN;C)?72v?W7YYNFD zg~@xh2zp;(IdznWfsn`&mPrNG@HaeURzVwP4)q&3EbPf-KEH=9HGr9g6q1aD(Z=WQ zAQXJZfci-Um9Jh(985;e-CW5V%|5JdJob{0$7hYUp|57jR3)Gi+m$Iht4oN{#&hc~ zX+W?s(|Ed=H8tT{e#^T4Sx-UUjZ@$2$*gV*Jkd1kP-lHdZ)#=+p@fg>+MgD3-whgh za1`495qRNuJuZ0#*glN6Hrnv`e1Hj;nlonOF3(fv>dQ7Mlx0UGXgD@J{wkd(66T2Y zX^s1hn4wx##7X`~9q&`=!28X1g^7^(VwlQ+kER~OMix47 zXkm((@A3zQeF=7ru!($lbkZu!?}N#MsUu|Qm%g$1uxOi>eTtJJ`2EQ&o+y9*w~gv7 zoUOGrC~qpQ*C{?M9BdKiYrxLR(qD}-h|~!8tI85C_iKp@(*N*wPJwZCZ@B;3*tV02 z8a1|U+xEm(8=Gxx+nlJeZL_iMoaz7KT%GH4o5}3id+j}I)_R}k{XK15yAU~yH_+H) z0|cBg`PZ(REzIXwGc$o$d&Y0Z{^=K}aY|7;$q^i+-s?WRQjKJr2c*}#KP=imi4s_~ zs*%x2ao7_C5=X`#N@C*+zQp`gRjZgtqdoAroDf*NSPY-U<_UW*M__F23)PH_(fW0S z@hPCOI1?4Z%jX_K$+M9dRhXpeyf%=GqqqI^cgsEw5_Qe>rC9-T>u=Hv&* zS-Y}>znU9#>-vKCV3(T}9@*f}IBDDyr?)_fiX~;2U=5!GNKuQq?g8nO-V@8LH-LBK z@*Nv;9@w=Vbua(EA(XCI#*!2^K`^=8tGmGBsN>uz|B{?3Jf>s+3p+JuWy|yJ_GR)f zeX$m5Fb}G2Q2DRH%PKE=apY@K(jsJZ9sOXRfgdla_B`C0i^mnxk9M(E6z$I==^FJfL>9|iuvks^wZ}V zq1le2iAyFqc3YfVZFh=$dYdaH{fcqkBqueH?jPY)IG<|x6j-?3Y8D;)CX#F_ zz!?e)mtgz1F@Pfdx2i>$H*LPL(K8lX6Vm;1oD8~oIzF$V0T^P<2(^JtL3PaY@15g+ z*V^^a=*Yd)GrXbAe?IP%SeD{sN0$aT0$*eJ?dz&vW=aW*oLA%+e|w89I)gtpk?{|% z(5SGSCI!?Gr731!@v%OERblE##XM>lz@YxEL)4^_4@edFKj3mYm44&K&vCX@^CLCsK1VK4tyI?0qydL?K;jWxD#GbS5U8^iSC{*e>#7b!hHxhV zvnxyCF2zi95z}Iohe>V2B&TxYZW0HA24d}vn;uGzV8UsT&}z_CbcX9y8ChyLY=+QO z2!@L=Pet&IIEcaZ^{851J&-C0Tu21rHanMA1L0%P7-5h=qN4wqmm)6ZGrImaV)I2M zOEi9WxPW9HhH_kXn3uf3zx^RxTdXpwrLVcW;QVOYk6Ct}&Y1ZXkjs{y7pdNH$ zoDZEk29^M_n%~1AF1R$G;stP&{ZV70du~eo-Yh!na)cSBwTAyl&#q{8EAepMARO?x zexdVhl(npM6^hQRTW6S->k~!Q8M-{<;rZ^Fxn#RRMbVG&{>G%N!}jl1_lX3-L?&K{ z!^Z*x>1y&zl@^F)+-8L(3C~a4%aSx0Z<^3O#1Fw_VL&SQ-+TKsj)h1`s|fgi$h|Gd zYgPZ=)N`x-be%h#WCK5x0DYvEsXQg2Nx5S(@PJEjp{3?!np=9i=ch^hfX zo^yj=v(Vy(3G%nDP67{-K%nu@hqYaf{U0UN@yvw$KhWOKI4!~Lf6QiA1^-aOTp(hq zJhWfW9Nu5ROIL-b()`8biPtE%TZ8d?a?~gn zNOE-d*GF!%B?|)!OU3BU9y~AwxSR@-6iRn9OA(RTMr$xUe$T{7k5z>M6qaTG7r!4; zpqO;Ti16>i5HSlw{=bm?{|BxIgVFz=(E!d(%K|}P)z!BhxpHaVl==(!LFd}cISd=6 zWT4*4_09V=tlOESHHONq)enOfT)a z1uh9_F7w(C-1`q-I`tFQVD8){7Vi>4RkL&Kt>2|koJIyM=wB?B@{rk8@Wim3Ak_%Ojk zdst5R|4=o@{L2%)L0v}EOzRAZ*`mlz?RXjs#EOZS1pf{%X~c=3%WKxY-TT{983S5^$R{9jcXepOLcWve9^jm?Xr;}n8pqM zJLBTGu=FFiPm%KvmexPcIQcP&mRAB`1AI*zKaBH}M*al@6m}aG(#M~>dw^??ID3w* zX6ygP;*J&b1*ge*n2>1W=NTSTnwB`d9xX_140GUZxU}=c0=tDcq_~1G{rp4$r;K2dqot~-;SbPuOFV720k&sJ3*M}@BD&{_@Y(u zT60keF4=!?r(R7SgW3dPgC`@{SLfTru90U>qRx%sVF`szJr`mzGy9CvXP5?{{W-1olmt9BVYU zh74uY;;4Bw?m~Gn*9=&VVe`CnlmT>ni;#2PdyYu*>bVXBTY{IaBk&P?;^)4BVBPgc zc~--i0|+i!Ggy5c;|QRu%8*t!O{I`+nDYy25OLd-4^Hhzu6kLmF$0^BlpeB#RFqOE zLd1gbadBw(jkC?7M-L zjmj#=d|x=eW#^QE#{VZ_L&xB^4XU9yU$&#Aa>B(nla_xz(d%rjLmN&Ly4*(?=g-*K z&VT1DoVnk8{X&C4-Mg|Jxhg1t^0`WM73#WTL5)g$(osXi0sSbK7L^C!=~a`AZDHS8 zBG~HHHK#^%d~mn_eo|R$5Pu_`f7Vh%fBNOR!6IPB*Nt@hJyAYJ^W^P}`*T;VG?!i422 zyn(@G4ZARXQ!O)M{uDbejmJS>3-!lhhb!XC_JY+FSN|3f;U-0YOSeBv+DJ+C58E9; zV=I=EJUz<^Yht|Lo=Rh(r`0dp$4FUd^oN&iKo4`35o|pc4q@}Tn&@{eH)9oppQx06 zU%KEg)GTn2CCiajVeys@a!c|y)exnp>N|B4rNE{EJfov?In1;4(g_8T6Me8pbqCD} zZO{j^k=rfUBKeQU#@9yg`6F)cS_U_TG4f^15ZuqOD-_QtD zy$ylYDIu@`2)K%q$QPq74R)}Fnq_Bt{JZ5^+(oe;6rOg%#PxliWs%kVM9RKnxRCOz zdTrl;_$W6k?aEs=5v0`^Jb&)LvH4RAawvE<9}`lohnTcI%Uj;ru{wcGA~)@a{K0Vj{nNn5zYo-4pq&_py*oR!Wn-AKgqk#99EH7A(>#n zor<61IwR0Dtt3<=xf@G98>_#>42-*^Ym`ANQpH_<ZpOOBkfwb+Kup+EC4_qTiVK! z@A?Nk_X|?5Lb+Z3Jm1_DCAx+(zGZZ5Ur0R@JE=;^%dGs8Zas!z^W{m@UdovYFN|hJ zbS-n=G@BhdJ46*trwQ)jyZ6y6UeTJ|BK#IiN`ADSP_hxMjsH_0Ad%2u&WiY*K`Zwu zc_R4m4;-ZC%{_h^4NRcs-~3ZIj~NOaGp?y8(+*=KL+!?|bG~W4h!akPcKq7`=|TM^ zQ`G&?Q;b=hzL*EmxRin6)QGf$0Ub{O9sR{sg$>u8=DB)-;aq~VPlirxN>{_WX~)z> zZ1*%PMx1#73T7AvaJ9{M9H1x6Y48IYvf$?CI!k>@RbS(E(}D5Wxlp#K+w_5vu>>Q? z8HS9Smq5Yt@pSmtzL}oKdDHH*%29IH44YmsYuPmcH?FYcSr>Ew#8&{{YS_xLm0QJd zIwxKpaqP}ES_PdTfqjrl3~f#Gm<`ZYOv=n)+7#a$Ek^{HFML~)KQZ%3L_5-Dw*U7p zS(HR~@6;BOp;R~6=NfarR?fChlARz=t`ZbQtnpuQapJO+^v_*)=kLKs=UzFgti+;a zNRE2Jn&%?j9&hIf3BQ5^3o*&O^+gEr*0c$^6Q$Ra%==b{6%}3-h`po7m@rL7c}g0` zk?g=l?VLSFF30Ct^VaiZU2)N>1n!2qHn;$tFJJE2`y=hLCmH@+YLF- zh~>8Bb^d+Odh{C$T~}WE`xZ)ZYNUR?UjpYxpR*zz#jVUntL)3f(>alVVPU|pSU{WY zwmi9;Q>!(nLRil0-xxpe&0A}*0?@s`}n2^%Id5$I0l_bQtIfRtz z$Q3xo`agiCV5Kg1Rz4jz;-YTz4!0TDCyYlwLIiC39~t8pdSSLUHdjeGpNOw0XG0;* z94WKfQB(pCKRyh=0l3Kw+My1s868Xm>+@8+^{A-SfrPAaP$&Lk%{A6RHyGm6a zk{^e*wgslyUOri^79>sj@^I_$ z-8JFfkEuDQ1vmXN*3&|J7prWO5w*ap#lvVkR_GkBBQm>Og-^}y_ZZlIe103Y@{02Q zk5p1e7udX1URNJF(*Q+2@5c9fyIH_s}(YZ^* z5L+p5Z_UUzmo@Tvlo8A=-GYF7`}=upo&*spD8B`FbbRXRMTzEMzoB@-K`8Whll)3X z(xpzf!kTitiEiI77lCq(-apR>uyakUnp-#Hi6umBA>hU>%%Id7yK0HEP1UXJk%hKA z2)mT-d?b->--C1o99gSDH!^%5{TRy)9w_TT6e{`5@Kw-iEXvVvmPZ$37cNG^Ic{f= z{T(XJ zsaYTAY6YIrJ>LzX&C&mQ(gu^^^FJz2)fiHZdYdbX*&oaBg1J0by_-Z@ey%xag;fNv zML$iAz^hY1%bR{_vntnJhk#dt*c={O;Cj_si+FlW8aUo|z18XIFzHhyqg&qYb^07^ znRBJxG-$y#h=Y-3(hcnGC4aJFn>~2k>x?0gRyxBxW&f^9rHCDOcjpQjB+U1?i(qAE z)xSFsr7YcB3>J%|4VbE1-<%PNcrbSyao0S~{=7VLgvX}TIE>EIrZW45a&0A7>0W;v zOf)Krdh8a?m1wewl)zZxAsGlDk@gsqIU5`azbNqdhAH-T8s~(sDKVDsuog3%q|@&I zLb!Zd=}pwofq8c&N@K+I#8C(-;36P9wK-NZW>6>(frHanwd_xl@(MZLyk?Bw*; z5BCNJilQ%4AG}XoNa2{L4-s-LF2@w7g)1C(BGiB+;~&tf4&Uc)RH;KL&g;$XZC!Be)X0Rex;nc? zcOCv;_1|bji6V^AQvnw)yN`UXPu~r|;mxiHGL5naTcAY$HN&a^42qghRCp1K!;PNu zc|uZew(01c8h^O^lYur$`aJKtE6Z%yrd>|(g0Ll7FN~hi-Tgd$$)qMb6US0h9*S7M z1t00|^{CmpKJjNv^v=Y4Ly*CFgD=7TtH}e%R|r zSnm(=h3=ic&_2;2#o|Y>A4HIpj8*uIM9_lX|ElxSbh*|T7V;}DhY8m#>#VqTECXH; ziT@=`YPXR<1QC%Yy>95`+fo2oP(Qorf-&~8{2kb(B<3-lP#3ac<17WGXo+11VfE3h$zp#hOxZaW%rB&uZr?_+7sXH_Jvx+=< z+!-H#D>g`~qAc)pKPJVAM{bdOfi3OZEGPjMTtp8D#m|)ohch5Bbq7}@8&X!{In?+N zfb%l2u@NikqJz!EL-AzV6CMpe9yHIE+f<{8yFa_PilEZm_k@as6GM-MiNP=Vz zbcoH7M<-$kGvxgL)|n2$MUB*eV|bk`INom#aj>y>7r`uLCjVzx1H(3z=zM|KZA-E7 zkz1yYY10d=kBeBTOb8q?HWpPaST=rlqLYz3Ebq1l&0K`Zp`v35gFaAeDTDl=yIqv1teY zM_sTlviI0on1YUQ$sBtGET}vUa&}86gRn7`{oYp;{Y7>y(F}Z##mR~@($oKisO0IM zme20k68WF>Z}ItIvc{hG!3-+=)Q@$FV52jByYFmTR&mpT{1plE)3DX7yo@*nma|6l z;=~QzSQntdpL!ba3GmecNxmX;PO|1xn2g!Fee?8PdQBC>o`V|c+YWT&9@JkF5!qKf zT{7~Sz;o(M{8!uckHn(*a}l-0|3b5=bsJhMqSyIma}#D5Lh^ApwA|>F^bSkc`sa4oNZ~Y(;agY){E&B%0 zrXpfh`rGk>lW;^6jAFon*D{5N%sJ&ReNXz?Jh1F>f=6f%yR#lOG6X#X%iS;VD$!kQ z6l|Xb`FRU@2FB`%GtC&Q0d}6K9t|~aRi4@(J}1Ep697a zNN<}Z`@?HXjZ|Hc^fle=*_(kYf!%NSOh+SsBx2)WJKJGa)F&h|LxFPqa#ViX%dW5& z80rU={Czh&(_Y_9w9LfLuA61?3W!mi^&z$dSv6)fi#gVR7KJbEbfMx@GCbSfAm}$2pP@Sd76q zoVlSkWDa)D2oShoe`+Y_Nm33GZqBDoKDZOrayaq2fYWdQ&sp>e)5f0=g>CPZNiYVw z1kcT^n1`C6(DAq|UE5=C!=8CXj(z+aZ6Ni!#WL-1ezNc)NE{IRmKjm_Nx?w)jwvftYpA`R}8`JIsw`|QV@mERrKzCJrbm8i?M4V=h|H>@yd^RC%3 z?w77&?(}0*Aa5JyBhhjkgc%tfc|%8%n5eouyK{p}d}1cKMYR@$T~sVj&69kI!tdR< zfR`j#?Dw2YUl`7HM~be;_shI;kW9bZ+xcYxPVWkStL`BpWS~f^Zgqbu$~5nDE#u%k z+On!)3`zGjJh7H9)Y}fK|Mg%6&C+n-LHH_;)|&#&u#mAk%j&Rmi?JcC&Ng#*oYzbw zEe}^14AGvulixf&5!qx?QnFdAaI3xYI6gs}rkipNf{L0PUNUv?Xm*l1mo^EY>>TxS zN1MYTlPkEf#c)XSfT@SpIquzaA*xhJN=wzxup4|l zhZBcdR&l1Z4z1n&5*umo9lS4b=y<1cJsF;znBZXKca z?{nkaW_unYIARUMM!}-80}g|`k)!zAAGdoH{o$d4Zk=B4tj#Pe5e#1*vUt5KkI^(B zUM@~1Rjv3{zJ#QBlzjAQuSG}aGU_pk@WsQn0$;xKxxVWGl4#dRG_Gmft^)MiaqKOc z6+b>ij?ye2+Omf8ZU`JPmxlEW<5*Kr$k76M*+z^4xBnUBry6K+=WyR+F`PUN8|1fc~(u@Pw+Wg{b2 zxl^WJdaf07x;~ShdMyR1^%#un5fO=hg&j)M-&+35^&SswJB{TXR&hqOwl4F0UeGL{ zz7!5L8}WQ!_P1l=jUbIENY5o93qy}ca8&Z>cC{1eavwr3Y?r22_6xASRrdW%^VpV5 zB-3*}&0d-?nn8tksUNQ~rG+2+D3&~_c!utql?XWWV)s3y&@@$14yAb%{mtO{w8WI# zh;>kjF}Z&FhxN62FAF1VM$BHAU)!?R1_oP0x))qc7Nq8rnqwX(O3$!usVf+{jE8L$QN zmY0_+X&S!a0_OG-MLPKP=b6$MW*i zg5^^kxIwXMMc^3GXZ&b6)4Dlw0iVTMMEVRqLPZB|VGT5j-YxNJEDs2MIzc$u z9uzRt@4IQToSU8)e3>6QoF>ehYmI2#9~%w>;NPsRIFk2$YA|`#_Pg~gpnOTV?i?2m zc2Kc*TkRR|+HOXQF}=Q?Wv0jCuNj!eTZ28P8#I4yzupQ5PW@~2+yYaxqc!T^^xYN~ zS}!-_$i(jN!ORvd2FJ*48np5vDa$ z7}wSfN85w*ENHL30#EP$eT9gyTO3mw#yfebug~v2MrWf%9sEK=AxB&SgW?p5K-nk0 zw`X@**c7B3)zsoL(Vf;LTnx9knV%@sEVUGz&~6_!?~nY$>bgkJ5{6O~wxV8tLYUq! zu+9K2qnz^A|~@ki5j@J{IQkvGituErUMG#Q>C^T%L5)9au1lpbE6c*!!4tVboG)C*sRM#y(-kIr``{Fde$AyV&}Dt}8N_^3$IHqXKk z)BpY`KfiGi(9`e)l|ZcSgl3b-P`~cQ?R`w~6tl9qK+9duCG2hBd(AwOj`f}}ggLHN znxL8XY{f{11n~*`rmxd)y_~B)9c*x#>J^hWE7H>R_v-Mhj<}!!_CJxj#zqBS&d3?C-?`{vRT)pyE z3le_LbRokG^exxqG+kW#ccUKtM1FMn%GVB6tC-uk^+&aKYttVVgOP;Egd5Qn@h0?o z8_DH5W=kOGv-K4MH>oVqDfk5Fk1kQj5GMJ!W=DW}ihk(%GvM>e*^IJXTt6F39R!y9 ze`+-m=d^jD`O4TvBhcl7>VU8Q!M|JON{h`U$c_J%zz0kpg1lj%g9Jhr45OBaf`{oe zP-!wM^*vv*HcF97n_IEO$92-!*@!;lAp4K(IBD-|aX0Eve0_yM%Orvj;ra~R(#YO% zXj463_f}~Ko(98egg_Mk`QRU;vd`N#ll1I-Lq1cVkX@W``DXcSk{B%Nux00RNKy=X z9W8z@wTU_y{rl-PI9j=j__kJspq%)Z?W9`D8E3FHpMED&czcO!;HTY!gWMVilw|73X>p(VvRnCL=2u`%iuZaB{66OIesOr@k%2jB!{x(t z47!cd>oDW#+RHe$z(}j_D9M~gw+ZkRyPKXtI}|0#d*-SV;m|so`KnrI6bP#|62`|w zn}Xz=;3Pj{W1>377;D6Dp8k6R_(k4E?6Y;pD~QY(Yrn=qeYWR*mNsHb)wijOVXJsM zm6L@pwGh{9<0JO`!Hz3R3Pt#7C)iXM-bwsuEdkk-zwF|3G%R~-!~%zdtiUd?RC@o# zIgjuD0r`o@N%|uARk4m87R0P-`=8D+IHd(FkwEqU4{AARnO|d$2S8WCg13trPa|@b zlCkXg79}RFvY7mnl%_t0Zpa6Xwq?+gIFU(4OkZ<62A>yC}mYCAGF zust|zvjAvd`$Zz;AE3!%4DGK-hNsz7Oe$)-Un@tL z{ZHmAyU>|~xHEcM3|%o;hqGq|s#xmgC5}_O*Ie3j(QYu4xy<`Ne&?xa=I1OXj3)qa zH570%iegJ#P^2|#&1B#bfB&bD%@yG!8cm-wIL>mb^k3wJj>XD%F+cTumrC*>ae?_( z81k0rrkD>w|2JHLR!79q3=ysN!$L<%8;y>kplO+F78IbHNLZbTH(a%$6o;Awd2$7v!S{V8s+a&x*>toUy z1nLU)M7@N46Xs|4)gw_6P%81och-%;6-e>j+M+p$U77NBvev8JMboD(>czYP<9Yoq zoORc!=XK^Vp*U9!+}lnwAOCCh+kxckHYQPE3l>`+9@ZnN&f+J=kVG6zTcvtC z2tndn%#D~gN&Fd0M#Bwlx)Lm+Cum8}$5>L@QqfE(CZ2)TUFW%L6+L?MXF|0>8^&Xs z-ZHO8cIA{9W}XdY-i%rehsnpGl}AhsZOObvweoH>hY$!aRADb%3&N}BFhJw>)=$2l z9LpEqi>M>h6R^h3_OV21&IDqLn2G^e7B*;8*%D8H@)#d)ClY5hH*@@e_G~e+kCVjU zAEwmU(TsmIf!Qb|a44}$se<0v7dkv}bY(mK_I<>KpjI?2gcPB01Y@DvUXc|nk-%Qb z7*}`n^)f~>sptgb<>4jan3fYaFgasRKEpUqDKTkhRQ9JxpGtr=k;wk7`!l;K8lxBv zRRd(WE)s>dLr=Z3SF6nd?l{AUWGIYDdUbM6*zUUR)rw))kMdkb3LfKf=GHv%BJ77;qpl*{=t2a$HJAjy6NElBz|#Sr$`i22W29!|x8?2+KPW98XWE zz2+Mvxx0DtPj@ovZWOgVbvPbS^(>@E7>PryYDqPQnpV2bwCUL$sm7nc8VRJq)#UJg zxs`#BKW46E)!8JCrt5%45xDuP&~y|pJQeZ3iH9us86&K(q9r0^7FYeY0MPeyXKZi} zy55&wN>TspaU>SDM68vt#$?yTpT(%6dHF zMnkhRBDb$?j@bRz!e`uz804Q?Pz*v7^FpNDgYyyEBQi;aqwzBpzKW6c^uUa@UjB?B zr#DiS#3JuQ!@fXIh5(kMga}|gG7v=(Sj0()dlhL3#nhRw(tF6np8_?|Gqnv=8frsg zdQ&McoP^C=BKubS2f^`cM!xWw1II${@PR|+d1_6O_x^|u@~#Id2M)b{niGG*dwmPN zhO9WNikc3e7P8d+}5_@?L_5=IB%6Vb(oN>NIQ5RCXMv}JrR4TG@< z{x*fb)ky9DHnr+S8{zW4Osd~$yzi2w4l22e!AvUduUdaS(lhQ z+@!{sC{ULS|L(k52&l6Nmf9M(6-zzNG#+y?4+sd;>+K{F+#&bRxKCedztSG_ohyx2 ztqKdwBWAB~_LXSnjYeT0jN@g@h?bKSO0D1p0jZ7xjU^N~Kmh^6v~~mrno>{Qzvlrg zlDzgX+SkMyi(iU1(jd$xtn49FlCYfkUE!`sN`o8nDOoW7e76>}#Bqed$e%gijI?+= z_$%-E==giMVcK{H#j5m-pLj+)q%ZGQcdlPU;s9~N#ZQb^t-O5`P@@$Uu6lRNBitiY z8+KY9>uUL*rXpS_xG*j`Z;I7?Z)9iq%TQT8L?;!IeZzcFqQG8d{Esp=f!#{@q(WWo z691mVh8zm^h9zK2vkdlYSVdlP;%^02yC%VJzn|GHXRzEJi{!NeS`#6=dF%7-3?-_I zX78m^WCTNaFUpdrOb6JP!vAi2@kf9g1@{J04ElTe!dBTs`9!*2PAU?z(?e5f#Bcq1 z{BO7x9hMyp{8F*P2d`!~8Z0M8w8gpIFE=+XI^U{$dqwoR?C^@^(;~qw(2dhEzIVfD z9nH>^4{Dpb;g@BEK94g22jK3+sKsTU?EM=$UXK~Rlii03oJx>tV`|4*Fr=goRN5=>z@cO_h5{w-#rTBtg77VfTPXk+v zY6jA~VApm)Z!vVWt`m}g|JG0$*@H67=C|Y!5`Je)_RWUt?yXm1FoT2Gg{CHXM0Obk zXSW{_R~2<+;`V{pHe{QNguX688tKZC~>_(gkUq z40R1)Og2%GQ1FXvGX20*z%xRnPAC3`V*g?w)kKVXyFz|fIig{!7xN&t#b7uRu(k;k zCo^p`oFJqm_kv3;F6(u~<6J6qtYn#ojasKvdDEly%LK#v7b_Y@nW1<->X_Jfi4K_P zL~i}#q3j@e!1QW-$}tBxqyuK(oXoXW<*EN(DoEZW=)>Rs7RYzAik$h--mk;-;4q(~ z3p4!1a=|ab%G4l{0OS2zi1{;8bLr%Oz=tsU}Q=Aeg@}=(QeiPjW|8 z2i^a6^mQM`qgMbu=DE$4&Ir|yxS4R>?NGlJ99zBZ8gI0>5X;*Nq;5kHy#E6s0wCn} zhU|WQzjQirEkj*G5xAn&^BVZgrLGe>^zqSh`=aN5dR;yk@N}D_q^^#o>Tfcjm7!#u zr>v#*1FQ(_4QLt;mZ=s2{GA<_!UTfx<}A0fQ3ABIc)pGMl<-E3^X2t`EtG(DpAFw= z+(fbmTx`j`kGayDQf`6rc8-WDm|C+B$Tye2{%Z4_MvLQU!&9>6)MRa(8&6{xr%wA~ zbk!i=Z@-0MYpOS6+vc2|wz87?5zCI}LQRH#@?_H14Dd)XNayR+qh6_pLo-JgV1&mI zA4?GLh>EhhKBYu15z!FRj$qCk4l*%Ma7+dV{3oYN`5mT0wm^&^|BDaH+=0p6k@9lA zJ%KmmORO~PEW;k~-d#)*p zHfLZSCPfh|k>${=+E1-sFHGw{wolZ0B{WgP41T7~HT?tD>a2tFcWpD$)9Z z_{&jE%JaxIgcklHRS=%~+sRc;%+N43vHl`M@iJCL*=2iZ+^=7lzT2S$b%E&QvpEGc0i0xO8r!r()|gdA5VCJ`%@gxu zCA>W|JL}j0G6^vy;(gGJY#2{6s($V`W|ceRuxs7dXZV{31srnRT2KJrHDsHpKUp(D z!Q;avi6)B#VV{#UwL*6IN{iDR)%@ZDd<8^1H+_9WecgWj7#P}9xbd9mE4?oOo8MH0 zbr=Ytx}>^+^_Y6T`oyXo9zK;nbpeODlkz+NYzh_5JbZ5UsU4tTWv zZzYWkbf{ym(DnU5erjMzTFLjmXW;1s49=-yVj4)@Q63}FJ<_wmXfu5Skn8j_C)dVg z<_Ks?d$hd54FraPw3>#^z>ASPa7!>Wmx}+^$NRZ=3ct@| zq^`$PtueV!5(8fJ+%YPW2Sx-sF`mxhX{m?F|({NP|+}yJz2wdmaHMio=Sfg zq)|G$S}+#Gn4#@4JFeeww=GDar-4l+UQ7cY8B_t7bB`0oS(?U1r|o5}p9c#@*z3PQ zT>4(??icq1*eN?I7HOpZT(iOHgS96m7u^48QTuwIti8y@w zvuV?8@~!Wb?CN}+EzM$L73vSd&M{ZqTD7r+%!$G0J|?gKlypeilq4F@qlTQksmfSi zfB1!V(2F-4C;MJU1l^b!`up+m@va-x2Es-}Lcjnz3~EKsg`jpsrLi@0gW6LT;nA7Y zgBU%rdw-!;OJ8H4_-V3}zaYGex;G#L*kzRYcf7uM#Y8-xSiCQ0=-GTW39Y&!PS&CX zp~BG3RQE3Sq!uVcCrJ*Lnf~3C{Cts}rGwD+qN1V=-R1dlBxfB75UgW^(JfQEkf+AT z!dMOZ7v~|Xel1}t`(_a_0g=NQ)HHRNzY&AHtaPjgZ|rw%4mJ9=?NpQ>=u?Nb+mk4p zjDeCUgaR~T@=Hdi)#R$8TxT&7Rwf)jEuvfXzGZ87BKH9e!p$Vvx(wsR2>L-Z7MovB zJ9^vm!`W34^HBLC4->9vW*%3dmg`;-*Ue124kE9m6mF8%0IO1T=@!|uEC~dfX4Pl)Q><6K_dF9-bp{0_zTzsgcA8*yiA)|DtZT_nKP#|Q`D#>INAiN0Vavh;SIl37ADzn&C0mZ!l9_8bFy zf1(^5`h$gK;@>GhKi{9+XsYZf5#)tjzhm7qc>3M? z+wmKSCJxzS1V9)yTKR``zCK2P1bmN_^yJDP9Y%7=_g6(&!2F_KvZPd>Rw?`8zw zgkiCo|4YsmAmTR1ZqxA$aCher_}KV(}*SJ4=u^@$G6?m$4Tp1K)&@b#hDrs zbkBKuRSbAXNY7|5zZmrQ!v0FD=8+Q3)Y}_D(Qi|6mOZBMkpDx^q0B%uUTal|Z~!P2 zh9+tzm{Ka-5qIJsN1Pb0RrhY(8EIv|p^^2=eF^WK9{py75z>o&O~W+DBJw2R0knpX z`lunVO0c==4||IIi>%c1^?e>V@(kYQ2nLxF;{xekg#Z%5wI&ez|__&neF)>&+6_;_GOtP|1*zwu1gRF+Bz#IznP!S=e)Fk@$> z>gDcIlu@Wv>P?+@u3Urq7{x1pYh%{Pni0F%F4Cx=C43r$h5DZ8-dY1{=t7U?)}sh=W&yfvyoZxZq8GiG35upi z(7$gX!37 z7lEXKbza_#iZF(4Hosxj&Uq@mXa-qpwBCB4D4*_{8g^z@QMKWfIBg;~I?)n}^6kH4 zIM8~V?FdUWLPgr>bdMKcx@7~k4t_pSB{T+{xgr)3} z2gpFz8Tg$Pc|DiX9Bwo#^`J(}2h9dvU9xhy2RZTR_xcjXrRK{NWP*buMDj|Z3OhOo z&F_@#E(yR<&|NPBOmKoP|9lySuLnypw{#mWTZ-x5(LSFiK83t>@Uy)xwE1321YHI4 zI{?vCT&(PPE(Z)k1SfgH_&W=438B0!{8NOJ*Q!cx_T+>a!c`OX%|ak6>IKBp@&2$j_-y4`E|{v-EnONhszOL?>moAn;suH zNmjp7(h?$WBAs1nlWD!rxZZeUkXPz^=8ytDO9b7I&_Q=o4HCd_>4`UvuEX$|aO`9y z&s@;#@g&?@U&4sl2plMq$T=4os$JR4qQzwoXxQ4EbE87)brSMZ$n<$*+0GkN@p982 z&}I-%*MIrU6rxDP1bj~yX`BD=HJEArv{VvQftXg!dPUP@@xxH<>T7}SSIi`clUEKQWy>v|jNIME5i-+RiwaLe%m%>8qxB)wQ4J;KZisE>$I{RC z{maK8VURL0LS~ z%?EG)v-N_Dq4>0)P5ad)EE8Hg{AaX|&DYdgsBf7nHE0?U9+ZIy{? zVPCyWK8gQz8t#9q=--iZ$A#GVkaDw1k<1S45`AIZs~Za+igsXpW!+eoj3&ZFYKR^m zd|#l)$bBH{SmSgaG~un^3ibbALb{pFlFY*m+GNHOq+F=v}nScBf7edwic z1UfzP?=QZ@&Q+f%G+8D47d2AP@jGBZ>HUdN009@r<2bA3HT3qQ$aTlSxuIG;X2d?q zFrqv~utwifnj>5er476GA2;%PGod&rdR7insb&6@+2-Hb7Lye0Ew%k$YUj!kNVg|{ z+tw=Fe3S`cBDb&Mr86RI{m4y<)7ljk(;B14gbh*N3;CVNh}m7_PGQE)6-wB_)Ny`} z&1}4A|8Kn(f8*)pu8%(Hw97VN({R%RNaeW+{^9R0Rv_|g3l_kcb&jET0hta>iz`Iz zfuY#<wSo)$K^*or)$?jEYh*C_w?3MA? z!cTQ~=h>VhvKK~6IGu{IyTis#+J~$AJ1gJyo)mqNh9!8Lx|_Op zBO`VOK)nziCvodwm{w`CSc~K{O@#)`kN126(H#EZk`im0EoDV`Fe>fIq&+*{ZXF^fH9QPg24en$3oS}T<(oQd# z9l~!EWk-w(3W1ZS{YEm2h^Lp>wKPkmOGQ>_a5s6tD6hqnOOt`bP6QLjUxGv#yK901 z!b<}c^t-!;oucGPb4pr;vt3#Yyh=PCY1_R|y{c8t62OhJr}L&1OdQ{o6G@{}ZBnfp zf?)N#BDeeYJLvX(cNEBC^W@afbx$a6OrHo)jW#$K)GpX_Z4Rp1w7H?6`uAkpaRHb( zaw1U=p+Ss;3h;>d~MFi;8NX>g^LR2#)v6Z z$8ogfn9CA-PS}?_<;WHOnJ~#LOOQ*7taCg*BC-1__O}3Pg&|vH8zBWl(`lR`@}!G} znVH(SDISAl2|Fx662E3!Y`Hl4yTIbQs-@cukty>ssUL#r0x`pNk7Wo*mZ4u9Sykd9 zeE>23^q^fvpMY_P(qu7gk5BuWgM(%cJ{ATR7JcMSXBCm^;PxGm zG;IIq(Ux94UKXW1qeJnP_q4cHFWS`bZ57zlCcDtq49m4{4;`%B``G^aU{I!AtIdv* zzMUf8x9m0_E5)o58fA$X4>0m2I!!D1RHBKAP3zj4XXR|#1ev#6~#8_$yXSVvS!yJjiVPoeBoq$RH0i*qNoa zYv|8rS2K%{^web5i{|F;$+}&mH`nX_L7Ps}mL~{f> z3qr9snofCX3Ix(9MHA^*7epH`^S-$?xguJx+#&MtHaqpd07BI<-C$^yr#Oq`3W3^~ z^zA)_KkYleo+!U{x#wxneyhEQ^^+~PMm&ufC$0$#mqumyba&aGHZJp^>#bhrqWdtFPku>{1jwZ3|gTDNr3D$O^Sw>o(rk&d`2o=53N}I zlk&iggZvNCxyH09$hMUeVb0qAC)PVI^1~EdW2EG!O0soTef6mV|6WTBm$Xdg9(*#< zvLRLTF&*=#-?b2z@#FC0Z#(_L-l-=KKH+Gn*w1~rs3G3F+phD-PD=bvdx*MjHyp+q zQr;%epH3V5e$VQ)x`{*Qm0Kqh&>2zzbiFy@tnMY@c2kB_0jtESRq+CMv zOpiT_9gorDA!@(g{oO!!UAKfqS@a2dOMRc4gdsQOmQe`JAD8iD6?&$jmzDin5)xRvM+_0Jqw-^rYNFUkv&z=U(&|UqDjwP22 zeO2JG-7N ztsQb;fcH&?Vn~gb85C6`i;{15BW|>=lM{KTf6=t9%a9ny9-=w->TQkShrQlK_>yEl zE`R!%xtAJW7USE}S`?G1X!2(Vg0~Vip>E)cVQ_x{w>b@cU}yiYFFy=jnm(k;d+_#P zlu{=ak%3VHdCs6g=KRk9fjKIF#K&=b_K%wS4lv(Xkxga_Ro~7+`)l}?GSZ^MNZfiLFVJ!Z+)@Kp}FKz2Y+XGomNgY;$WnVN`W1X zL4Yl7fI`3`T3+!({#Qlw#!f|1QEKesOBV`(fk}7HeXa(M6<7|6VOSigQ8K7EU1DX* zoj0#mVjic;;9g3z@kN!9J_6RjU37`XEA~T(DzJd7C^Oh+4TVT3%gzP)WH44b-J-kR zwjfwgbCD^rJJisbBAC-}SRFb-bT&x#$Fo$xm?6Hu@V zVxbavBLMsjqC=HtDK$zn0maxV>S^Ug&%9GFLOba8-%fv$?5+9tuNPcD&ub}`-T$F8 zMoI`~qaNzn5}~l~v#x3mvdIsw4|ApTRO>w(?FoQw_N&@b+NPgU2*KMyh>mg{BbvJ9 zl?u43!u@^h%022b&+9If6*8i$8i+8$G(SReA&P~a)C_5>aDMqVe@yc2gXLckO-{J+ zbEwR}N4=!W7A~dSi3@dzh@wL`oQnn#cl1J%?z(b9zfr~w1%-P%>WV*26>BKx#kECI zuv#UHY9E@p&x}Z4{rs-ls0UKAS*NSZBnox7eI@Kzz0WE#2V=btwM+ypE-~69IB-&=@JG1f@Or=Qrd^NXpJXE9R)`;XItD8$!gT(grWzlE&N8P| z`|--trjvAhn%()ag^kzJ?#AaPm3pVd{z)Y#tDpoW{$2U}G7dam3V-?dDO6#SWkWV< z@1l#(;8BY)eiv;+Q{)wQVr8tYk*{n#cg5?gZTn4&`PoX;sgbA6)L2Vt24#7ZvfF!| zUCQ^_VuHfT6MC;?-?Q;+iwud1Hocg|J~0&-5@ypTdhhCH*{sr8%YSO%3}t^wb+oWq zYSxz&yyN#p@B1$7V>?G@%s>l-=nMqdVYz)AA7W9%9|*k78#^?N^$j4nd?Gv}8{SX# zQ%dKi^Y$Y=aqNfbmP=mlpM-rc2KBv==k6=^Axbtk6|XP0?awWZg6b^&h2E7>F~zMJ z3zGdBZb;X)9j}n)s;fm16}IXb=9N}Knr|3_dt+1LeZyvtovbv0quyqPi15PdaUA0& zl+Q;`ayw3D?3oJZn}2}_f)YvPMx7EoXCTz&5L0J$!nUfbkG+{|`S#t{1s1E9f=3EK z&7Rcufo}_o{>fhnwu^(44PESLSJ)({wvB8i7g5LAMSzY-imRpjqqWrSvIT*0+p9;Y zg&w+j`j9xzr;Bn9dL+Z@xX;AEMaY=OV`h|8gF`Sxb3i+adG8U-S`AHv+xwrR(_Cyr z&cqG+9_q4cKncuAYM+0*GVz859|$sDKk~J8ywtozgL7lC{!hLUKx6>`I{qONT0Ln3G<}4mv6l9kT+BhMVzhV-qyk0kQnlR_J0D@djoNy!Hu_9vDf54|9P!* z&7Qe=kLX#!!hhaOhnp^#)(lg;vU;{D-=){5Q|j-v(Ai%4D*3NwYOP~Um#=%dA`SoN zlB?e58PPm%l{XHQbS?mTFrYR=rGP=6`_woRK@t6#F$oSiM8>~&Drh9njWQes5ARcy z{g=S6Uw(1=B0&5!e&8`lmye)e03(q`0S0oMj6lmvV4HtGy>(U4C0#k^DjRpFe1JxH z4R$;@_xLpnMhxtE&)&$HSJF(hWv|4zOaYwWCjfxtjeDtH{3rbPZ^V3xqTT|JNueq} zedEShP;j3l8mmgX)J;K7PBYdRJ^v6qnrNRQ`P+r@dppoCbfs@kC@0A_2_F|XVAJ7Y zC^v^}ymLB)=W|YWt!HS5fhDrnI)>U@B00uoBNN=)RYUv;WT!fQp}mUu4ep5Ay1tLo z9WGo9b>I2r$3SF@rWR0xaL7l!;wp9g#ydi!08Wj~9SDtT6 zUK%J_N`VlL44&bnz+8V3#J_}rZQTLGYr6rxTVG8jV%Jv0D|=Ie6X&ti)YP)C<=%9= zfQE*KsBvWJR|;x6{93ayiHjK0bC0+_&P?z5#o5r4l}3|=Q@xLY{-H19yt-gyB0e+v zLb+7`(MY*s+6gV_X8C~PvOj&nNci@b*ECXSz)b%5VF2{^fxU(mwtK0_Uvve|$CV?z z9L}kj5o`+1$=$0PB;q&o?l7F63Eie&g@<#PpD!!$CgQR85M*ll+X2WA+{QYO6nG zfINo{f=W(vX;iDykEW0o*53hs1&N7RTI$`0_R|hT^vR7VzK|>8D(?kkDKxmZ@dmq) zb8y73(hMK?EJt&z&-sDDrj{h>WabjGvUJ~Y{SO|-Mf}qKk}&X~-+dTMR)LeinEYB&i_USe5YHt+Cq*ZohdV8L8gVaVw=!yfF(QDrm zPUME0oOQHowVv8wV1Mpkb6XF>)U5dG{*7nd!@RuC?poDLkXS|{VbgiZqV4i=#H>aT zy5bXuOa0H=hoXyukj}`k9cmo^fMjk5wC1h!pSyFK4x5wjS5PJ7i%Uwn?;X&G{#L(p zpWP!6a)65K`wAb`@eXN6)ytwMV=`VYTVnh6^SWO*7%-e5=FhEWP25BJi;gr{Cg615 zIQSBtx{Rmmx`f7BZDz9Z;yv5_FAugjLXSv7!TBPtXtXdtKd&JND(*|}M+DXV>-x{NXk44%Pky3{w3@}L5qYasWmTOB5+tSR;tDO(Li5nO3>rQYKAr0y zw&vr%6JkC4{pxUlI-5c+P-v-5{i*+isb^!RB)NqkYy-30{% z5}P$O)JV{{;mTLhVhNL?$+czY>xsxvKGx(sIsv-MqIgmnE?1E!{PwYC@Q6qv630)3 z)vr>!Rwfkb6mhYi)oFl!_0dm98YrOj=)PbNi6Y9~fSdtYO|c@Okh!VzA=mBuFdQyh z`i8SrXDgkWV)?br&g1`hnqFFt zr#SlbvtTOmcU-7R@p{aBJM-yqwAp`qV*OjKA6fjm?a!cdw|>RaB*54Pd8E64&hm+N z<7$&VBMb&=glLQ`h48P;Ci-#yun}OhTOZg>Cq21lV*{qi#cZGs$Uwv z$&$lKD*RbVFTT`Qc$;;<-@D3g2WqZ)Y|vD>Ed$mNk{TMEjDbNBSlv4}#&h^|$~rpo z9FpCu?pI{wX|{g!M8um0q)3u%1K+D>3n2OsV$0ycCB=E}9>kL0-}=5%>-#)V9;xY)9sE8dYVVVtj2n%OGq#C?jjHhf z%K@aTG0dGzR85^OCXHit0-Wf9Qj#?LvAKm91Y2I9W|E|k3mKQS?z!Zk+WrNKlrvq8 zNnhs%Zy8cPd-#*|FpHg&GqmaC@gls+N`x55f$Udjvom_Y%Cb#u)>= zKFxwZ>(~5f?|5`kQ_~2={kX)#vt4C4nS5lK)yA5pYwhNJpb)!xSYrMXG^W#NeBm!n zcIKb&+k+K4XIIuUc>01v1Rxix&$@hAt2xZ`OoHa~)?U}A(V-qU*G`HiyGQC2S~VnxuWgMMd7(?%4s-CM zsQ_UXT92hqs_SfUi#+54%%+&zQpoFws95^CYe&>w&b1-qZ;B`*ku>RTJ)0PVC8Daz zHs5vwo0;2^dw4nUKVJw=u(FY&bFr756R)ul$dG4vp}$8X?(@cj(d@!p*w^XPz?w%kPXkqP~N1g!zEJWCg`Q^qchZ#@f)Vi5;b+Qj|C#40PBxW9M?!K3D z1qLsBno>n3{Q8Pw_JPAHOUujQ!NDFLbl+s0)v4}eNq{dgf^+HLXjlPLQ&YqB)rZ{o zO=>?2d*r#+1J9lf?e6q_OkpF!F!0yL4`+%l_6J`gpU$2?2nt7EhO+{=`9Qh-@Ard3 z#9WdEynyYSsPRs3PtDu46YrNGXt<`0^9e9Ez=J7gm)eq)W9077gq!rr5i44(MJXw- z4AM7m<9dNq-{ki4FvqUP*`!4Tfw{(X=#m9MxID~4E zqLG5+<%==9b1yJO!=wBF3Titdoam+ek3MzhiLn8wokShm?qcPn3+98-Q7Jk!qG5S*xQ+(H$*d{@tN8oWE$oA-(hcPWAiAV z@kji-flRBEGh@5;r|IcwGT|<~XM`ZAw;Gw38*n`L&-?7fisWWKc!UW1{S!B1AUVuZ zzh;k52UhtMTaXWv#%a?tGa(SMXXfPkyF#iw_8qWL8L9e|nq=(8qq{b*;4}^zjxWsS zvv1xhRni>SnUju$$zCym0+SS5RYQzqMpeNsUob>enNwNf*kT+dx0NC(j|YGMCSemm zpR1o^k(Bwi*jatly)7PLzvIFcdRThA{w>0cg-$+1Bmk*FACNIH@4T;f03Wr^h~*Y- z2gC{6N3i!@L^=b|Vk`l4i~rbP9O$l9lR(6eDu_r5H&h$HF*f@gf9DDXL|2u)Q|skY zjxHOt)ooY<1s}p(qoN863td-Q5G}nR-JGbpW*Y#@yNnW?k}w5-n^ZbpE1Oem{#h^9C{TM6kwPi-co?mu zjM-Wd+q>0uIg+$9uVage@U8>0OxL5tV!O(XdUf^qXW?R^=*2>d#!u?pjkQ@z@O6nP zbQe?KYgb%NeYm7L%%33inl&AxX>LP~iG61ZDbT`sN||}10PW)khxX3Bz{#$@RQv$1qaiJEleSK`-4IDM~&?~rt{0YB)c{_xx^-vcKK zYc}%13p@d9A3IwMzkK3cr&S3&#~R1}*@d6g-Brn}4c>G}$xvh)!QUB75MXN$0g_or zPmi8)mc_swd+U)(TwH7hW`-ccAR06=05irVLOpMDArf~c(sQ$DG?sU9iKNUeZ8>4k z;X?5JSCE&TcQ&Masu5Rm@I;{}4YCh982UTb@Ib#EuF@3!oymkGjhL3pQ z4@SQCBg77u*V2f@EKqK%K74U)61>NCvufOW3bXU`!qcB~bjG$ELxUjNIxE&zS$z$} z!j8=rMq^qZrt1R3>TW3n`^plB$_e>4w@RuZuF)%mOH=_7aDqTG)aoiqib`Q) znz@GsT24;&`(v&)^oLfu(_@ptXuuFCQ(^(dX2AKFBSBnLwfsw3@@0%f6yxqkkbbk2 zWHbRN$^%os>8u-$h$2ZB9M~F#@wFu>NQsV`%U#G8&gRzN;QAtA!FWVzb;Up?~t;{M*bk{F`kKiHK zv01rgWr%ErV|{~%$?i^jVKni^G@dkQPn5s{739O;;CRsR{qUygM(roQ4o}&b#;+eC zvJ+`@5$Jvw)j9Sb#-qj zLLzS4<%HZ^4EFWdw3YEQiBCLWYgFim?HhRMYjJMJ|2#AkC@(4RkM_M#<-aabGjS?K@O3h}tc+e&|7d$1V;<45!~tuQeVjt3g45O@GK>oTNUF;b zX0u*HA(I!^Q)T9{n~^{2y-{O2g#!TV)vO+a-g(zi$oq3m|1zMckB7aLY6)|~9k7wH zEOWQw;8kcb(U%&9)J5sL-NbP4T2EslmA_!I*UyTYVV-<)F4L};(PA?jO9kbKh8V9z zooI3UqK1JmfOW5YtT{O)4~HeIIhh4I28#|UIU6)(-e4#WGG~I_S~I5Ae3`Iyd)zfO z;LPZ7aBeh8Q98FPn`Af`MM##x(+i!8;aI!&^BH8!IkNuzB*zu*FL2G9ALMWnZlx?M zQdiNT5J?vJLm3m1jwl#Lt&`S@R#`!VMS45Cu4+xrv3oR=87V2M9hwWzRG){Fspz9Z zLO{tsvOGTC#|}y6f0E)iG_h%7(@yq(9x*lbKrmNWWC9Fh*X75>dB^}fbwFJ}V7qQV zP{Fnl-?lRCs0?Aul*Rq7{pROxy=LUs?*R4vWpr{o=l=RROF}_`^BW6ZUnB-8!NLAD zC3VC%S$r;=J`-PGIeM;%DxBu4+tw=63$&WZxZQ?ozg2n({C)d4bqY$5ZlN%MBHXwb z4|ba}_<4Jiq@<+v?yY=aP<)!hKhK1pk=T(HF8;o%(tX+hCS;A*@phcL48~&C3HIe{ z?Y}G!0(mXk8rE7CpVbdQ$BjsaT$I!{*uL2K$eMo7SeHF+H>$9q0yZR?pu3~}Nl8zY zQu93_N!3pr{vXVH69y!Ga5`1@N&DQO!bAz{jb`*?Y4&qDK0d~z2wkfg7Mmk>)3~R^ zW0VD4EIfjhE5OjjFv|wD>jjXbl7PoJwzL~OvTdorsVN|&^z2?Q-(KJ8bFbT&JeNd} zO#NAAWnF3znU)M=8*-uWI|=KdfQ~(=^vUV0N1@eFs;P>bvDf8wOq3xGJlpzO zg}cj9G=;aBf(Ol_lZRU?On%Jii%wgrC|f->aquIb3`ogPKb9IC*p;UZ;=GzJ#D@-L zPYKF#%jNkvvH)USY-*e^BUU4>?verC%{@yMnm1Lc#22uns1sp|8U8lbkN9h8z;qZ; z#+u&&@!F2P#9;8A_7;=;Z9(k4RM5y4rs_1}_72&$d7Sgz@m1hV!||VF1?<`7$<@`+ zy?NNc`WTDU`U<@$FAumUYYO0V4n2U+nGx#`C=8igR3qoLXq-W+9E58ep@Vu>n?wC} z1$FQhFB!kZ!_&0WsOsQr)E5y$`|!&cEELq!mtQQ62IwOxX=mZrPCzh)1Ri};M{j_j zqbRJ_$Voz|=3^bq{gg;XTQynHc?d1xH zWk!XxnH})@kW!hRp42={yU4?%@J_!f=5Dc-|Be;*XTl>!7cjZXF&KU1ZYd`U-TnP| zhFCnSM#IgB3H-*zu}~hAIxjF}WMqKEBe1r%W7Nwh^6CsQ61ReyR8%7eIOE2(8{_I+ z^j97oHpoy9s%43mR8x-4c?P14OX0}Wm0s0yC`|^wIvx(`Z<5jAE?i+U3keZl?Tya+dVv~}vYu%^&q??Y%`6fJyr!p5cgF%_9({2u}t2jEW zunPuG47TkLSoF=-()q}GF1wCi;8V{{XS~{j!Dzzh(NQ@mSWaVHkFTa2L_Ee66$LF0 zD{!{`xiAsHBW7s}_0}_MB^T)00p>E8=M0F*p~xBh+XaHX>-pnH|BmQob>F0~FY<7P z#bh9IXu|@0^l+KfDR(w3@H9M5_D*Yp-~N>v2#K0pp9n1L{yMX3u}H8Hmfev_wt8cQ zY9xZh$bg}+$!C5$Im~Sr?d!jc*o_i;>DSNrq5xvSs(svm7jg7R~*>t-y zBA<)a@QpRZNdM*Q_wSVaMA0a34%9$~{G(4NaldHzmV>7~c*y8N9~&fNK9&jc?|vw* zs2K1};{@F0#OpqZi;KTmIJa+rrrFG^Tvjyd>gzvQ@kA?Njb}vjqcN&GuO4yOg_^87 zp91!j(3J}j(=$cY?#Eakpx$46qoqkuCYOw*H1%&vWYB5MsrwiC!)ID$hQ(>m*>q|s zl&^y8zza!UKIU2w0h_TaGNtxBFY7t^Xp!bf4UzKDv89i$sF!m35a>#TD^yI2f^-Ks z1p92PdAgb$Zc{GSJ$S#hBlPn|jB9?=3(J#?7Mbo$Ve@2+A{6xBcz$u4WFM=lqAh#{ zNe~KVeV(C`7k9LT2gGKOz|$=m0kWhFRRr!d&;flYz5rJ>B>t_~4q zC0d{D8o!4AKoxnp_hT z!`c>AFd~KZ^0r*Y<1?mf1UtT6)m_l~wH4ygt~5bWWJu zpKt9QU!*eEr&L{3tv0TP81#5E08gFi>fsQUw8P^;PMlx%1bvAc^sV#l{1@Y4^xUG!BCLNE;Qa*t!t;R(&(82Fk%8njhtGd#kX%_s ze>)Q&?9P#1;oofjT82(ZElZKF)>OIW)N)x@l9=#2{j0Tgo%=dqNh$0nzcFaSiYzwF zdAWVXl>Hzy#_f3hQDNxGtFs(wB2q?J&Y6Dw{zRg#p)U7O1N}08+2wqa^bP@oka2(# zsg|h2tDn+0F-_v76^3ko216<1`lF1 zh|G3zcDK@)GDwAtAB?h;Lm%G|LE0WSFp#D~boSk6DJzW)PL*nZ#}ARfNQK5CKH6aT zYPxE?z@bI#G_}s?QTlPALB6Q1aE-{03cs+3CkmDq%%c7Ma2e!6Ru!Bonbi^PakDOH zv}NExy{ZXy3(l+~0DGV)d0b-n)L3GY736Z5$-$4yK0s{QbjH0f|Fs+3C3N+MT|O)A3M}&vH<#j&Uw?a z^uFfrg~b@|m3NUs2CerLAGaq^cJX|=)|$*|lbW)yb(D5&gGV<1>L{QMKIjGdPGF)X z#kUF`5Y8Wik&27|^!X(Wh zEwV>?cworLC?n1h6Tv##zay_U)+uCQ{l6HTf^Y1V7c@VlS z_e*L3vLu40kXz6kiN*1eUtDKI?b4#c1=;x4K_MkwQg>1vX0BxP6+C=?-NR>eqPh%+ z%}wFa6aoANU}bNrpswnKB`+^uSc!*?9&jM6NTMN_YT(696@0{xG-GwQ$aPS}g@+%@ z$%q-SgC4`)!y*LsB}}Xv*>w1~=)m?_jE)ZayOIn+;{CaB&=Xl__KJwIGHNCc`$vSm zF|HF{JrMKdVJwb-N8~>FTGrZ+A2CWSDh(yvY<}O|$O!jb1P5jzB~n!@$_|h0Uw$S5r(90eOc^9dmrg^^?JI+?5?*-qBT~5K}`JJzX zDiyOl*ws@k_iGI{Xq?)k-Y#hDmyTEGTOIB9Nwr5glBMeE>O(2a!n9-?Vj3EWpKv|W zU=yCo@0j)eknwKWRsEK*0=on7!_@twqkz>_-8W=C6{Cj76{Xp?3VA^$$MItvZsxz~ z@8qBAdAqCrw7_#Ny_e4tBt!>$B1c6_erq<_`~z4t));8?mf3=*@I%#siD!C#BxQ8&r~RR}o*tw_f?YQI z;}|LVG4 zRK#E2S5p*aCYX4-VDgdZ5JIGP@#Rb}&HA%;^W<)|N0!F4?q}qLdA%wOsrs5Zs+Dxc zq^QWyuJG@47q{b$7b#BPIAH{l3LaZ+X>)lMh8niCyTPfeyUP;SZhC_;$mZWwv#bUJ zvIozzIEK(vR;qWf$0JPEPzO$U!w~Z!nE&*azo+f+d1PP($dW2wLqUD z=yZ#??)l0T6&4`&UZxb^SD*?TtOx9`;<-zU#cyCp<%lM5$&ZB}B-<)Ja_Z6Nad8zv zB-ttEXEAasqJUNZjvC}4oxV2kN#eSGYYAgUzhnIU6z5;jBn@)O^B0ra7BhxAGcdcE3x@w#FdKPDkN zG7{2l|64{&0UUEqD!`+)wO5WNDEJN)^&wG%!>8_X(CmTkfe2di^Ou*VkN7^%c%_75 zVuIOD9M^&RZJaU_#+wJi9#f4yT#dPHb%IAd>J+6So;u0Ij7a@0eb1O^x{aZqGDa*=v|Iko^ZEJ@E z;;D@?)~Up>O#iO|!I^Mj5OiobR8-V&QTtmYWMpI`EcPg zEHbdEhTwnp^a}vC(GPYB1KSc!Hvhj5Ykq|iEviX>4YNXh2mDBjD~MHy82bMg_a=QN diff --git a/readme/2.png b/readme/2.png index 0c78ec6276c9f8333d58e73680205991af7530bc..125a1acb1f8971824b0d4282f4392f2d2a389813 100644 GIT binary patch literal 140231 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 P_~*h|4W%>%Gtd78t6ALZ literal 88790 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%0D)Aj^pCaoANl=@5`!VoINyD!F~lLtON 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

7y`*$9arksrGLL`jUlm>7ij_up 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 MNhwR#ikpW0FPp75N&o-= diff --git a/readme/3.png b/readme/3.png index 15b131c8c9602dffd5637baad1f6a5cbf1ea05f2..941bb4d9fd5ba5340ca9a5e46b257836fe5319fd 100644 GIT binary patch literal 117014 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%0D&e{9y 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

|cYjg;Xg}2?g1>b%&qZXA_O1KShf;NoUUd zaFs?A;jZ-a&qh?t=GZ(c6Y(WDqu+;~=`n5UKV(N2-z z<0Ed$(sAPO*K&_3KBiwt9TKfYwUxc)vvMrg^_iBCSfBKF>F?WP8=%;-__24!F0b-_ z&q6@ZbLp24=3ezbhK7d7WEH3}6GV3gjgRZOdwRB8RcDnn(MK+CXf#m4mc2k;=z^EwFFY~T|Fnq+o z;NNwgWDv@`Y$wM`6*&t5Af#teh9gmiIkxrdTj7-T(bHjxGs|f%j%Hu%>G%`up2V-_h;OBN$=lsBfxh@z6OOVeC6ii z@^o@0l3RMoZK2twZ`Hj`Nclq0g9BeFh=D}lNw9r%!ihV_NJdXeR8(AC*;sse`QgJE z7txuWmzv<$C?2a)FpT0dUNq>c?NxE%jpx zLl93`5V>SZeZn03sC8?u)tx!jpi2-+h~Vk1PKdx-Q5w3ssfsg+ z22n31%NWD3SAPL31hw<|tt4(6d;4~9@eH*Pz=cx^M#lbFmDA9;uBWd*I5c!2x-;jY z6u3)j;xT>Rg@L1z^AvRxZ$m-|YietYJYrM|1_uW4%10v)552Xv6dsCyUlq#aenH5S za4997)G=cm5AWiw$8rxe)8)<0S;i+O1_uWN8ydt>Lrpa`6k`rlvo17aPYCz+_SOuR zB>0;4YJXXq@?5pFehO`LkJ@saHNYrgtWf;+S~zb^b!;!S0f`MU+xV* z;};Q$%r(6U3kvozz_Id{mbXZ6NRbr$2!|RUYEl+hXzP1sfH1=sxp?9HHqMv2^t+BK zKt=-I+Io6L=P$0}nz7xSkMh*lnAliU0`KF&*MTaOj|4y8mYIUM5YKgYsqbTXxdKOG zTW@bDq^KZM8qPB(m2-7wtd1yHrcigt%gYl~jd4M<6$+p}L>f3ZWF0cRtC1ZpU{(Mr zo|%S(`Rc{Y#zs0g0oXz)+`QTfT^ygdcu_vpqE0tD#uy?CRGe8)FH%xc zuB@&;V2gjCtb7HTa1o^^6%rCMfr{{BQIQNB;^3hET|?jUy#h-mL8tNQfj;=2TMmQKwr;T{yX#vNEAd>U+u zJ&Kh9Xa2eBcYrW3v9-N~H?&vEzDD&thP_i8(5de37{$CH;o@XY&&EkU(9dU@V?$=KLIVx{Y74rbB#!LEmbs=G@9K7CuCMcqro5CHn+Z8DorQ zp`$*3m0BQmG19wLOG|6HfN;K8TXtpid1ds}>VAq6g96j&#|u}z`Qnbm?ujOBouh8q z5f>pBP3voe*#3PDHXJ=^v5a|@@+XEB78H)=t@j*J^eo-}bYs5bfE|e_cA={?;LYgi zX>^m5hI8xp7>gQa5to>0C1;tWtkv=lqtEVsbJOx$kZBQHCS>q7Pa-P#Q)7A3JQaDz z>Tm}y)7uf9^H}Bv`C!nae~I1CS2>-t2t(y1clQ@F0%UtB|At8uupRxmt15Hx^# zU(CR;@p84C*LNwSK*<~|90UdZe|a5!S~FyqllybF`mOOkUxb0c9_p>a|ps+BhAk6g7$gO)jkFq>-Y+MyP z&XY+W&=4MCD7;0&!d3)OHA1tv=^O3&%BbL}#Ow}o(#yxclT}TvtrhG$UH*)!3a;E_Zs;C{buwtKYObK*ljWJW!aq~-$ZER6VfW3>NeGHI+ymZ$loX{#$iU+;nI!g5QukGwiF^Wm1$%Eo8& z=m4U|@-41EWhF`^qQo<$@%S${>v(nkwu!(+WI7g8?@PPi*sS0EE3?(z@by*BD+OsCAhF#c(foA9kcn@mo};(-VCT@@d1fIzz-=ff%;t)R zd(Hfk{-Mjk2!4H(l3_UqiD;QX>>~rno?Ywa!UY~aii)OvirE$bpl`|Y(+^Xue> zQE_qCG_}2+>ib-wO`{#C9gd8`7=})cdS*NA=F4m``kg1Fmy?sT5F44j$;`~$!$0%? c;Exlc^m-%d>)C+{c<}47yoy|zjLGZ&18^V&G5`Po literal 75551 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%0Ah7ryKvHC2i#l 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�`4We+&q#?^u_Gqv~VAdBa2{!%R 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�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 diff --git a/readme/5.png b/readme/5.png new file mode 100644 index 0000000000000000000000000000000000000000..bfbb6f9181e158fa4280d1a17b19e58ae031e724 GIT binary patch literal 98635 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 z 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 literal 0 HcmV?d00001 From e14dc03524490c15bdca032ce9091687b3dd3f65 Mon Sep 17 00:00:00 2001 From: Yoshi Date: Wed, 12 Mar 2025 22:21:22 +0300 Subject: [PATCH 36/41] Update README.md --- README.md | 2 +- android/app/build.gradle | 4 ++-- .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/settings.gradle | 4 ++-- pubspec.lock | 4 ++-- pubspec.yaml | 2 +- readme/1.png | Bin 147173 -> 147995 bytes readme/2.png | Bin 140231 -> 141115 bytes readme/3.png | Bin 117014 -> 145367 bytes readme/4.png | Bin 189489 -> 142322 bytes readme/5.png | Bin 98635 -> 117613 bytes readme/6.png | Bin 0 -> 189584 bytes readme/7.png | Bin 0 -> 85123 bytes readme/8.png | Bin 0 -> 98742 bytes 14 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 readme/6.png create mode 100644 readme/7.png create mode 100644 readme/8.png diff --git a/README.md b/README.md index 5bac5a1..b27d9a6 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ We fetch weather data from [Open-Meteo](https://open-meteo.com/en/docs) and use ### 📸 Screenshots - + ### 💰 Support Us diff --git a/android/app/build.gradle b/android/app/build.gradle index 22cafeb..6a479c4 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -13,7 +13,7 @@ if (keystorePropertiesFile.exists()) { android { namespace = 'com.yoshi.rain' compileSdk = 35 - ndkVersion = flutter.ndkVersion + ndkVersion = '29.0.13113456' compileOptions { sourceCompatibility = JavaVersion.VERSION_17 @@ -77,7 +77,7 @@ dependencies { implementation("androidx.core:core-remoteviews:1.1.0") implementation("com.google.android.material:material:1.12.0") implementation('androidx.work:work-runtime-ktx:2.10.0') - coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4") + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5") } // Remove this for FLOSS version diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 4d6272d..c6a2952 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip diff --git a/android/settings.gradle b/android/settings.gradle index e5edf91..18a751a 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.3.2" apply false - id "org.jetbrains.kotlin.android" version "1.9.0" apply false + id "com.android.application" version "8.9.0" apply false + id "org.jetbrains.kotlin.android" version "2.1.10" apply false } include ":app" diff --git a/pubspec.lock b/pubspec.lock index 64b67fa..7035d7f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1323,10 +1323,10 @@ packages: dependency: transitive description: name: win32 - sha256: b89e6e24d1454e149ab20fbb225af58660f0c0bf4475544650700d8e2da54aef + sha256: dc6ecaa00a7c708e5b4d10ee7bec8c270e9276dfcab1783f57e9962d7884305f url: "https://pub.dev" source: hosted - version: "5.11.0" + version: "5.12.0" win32_registry: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 8f6938c..f237d1c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,7 +3,7 @@ description: Weather application publish_to: "none" -version: 1.3.7+40 +version: 1.3.8+41 environment: sdk: ">=3.7.0 <4.0.0" diff --git a/readme/1.png b/readme/1.png index c74aaec67c474c7a5bf538e745cb166302240590..7c841652ed1e7476d396a8c52cba5d8f8fc824d9 100644 GIT binary patch literal 147995 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