mirror of
https://github.com/darkmoonight/Rain.git
synced 2025-06-28 20:19:58 +00:00
Add map
This commit is contained in:
parent
b2e843c5d9
commit
6c7da7b28d
16 changed files with 380 additions and 129 deletions
Binary file not shown.
Before Width: | Height: | Size: 3.5 KiB |
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.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/controller/controller.dart';
|
||||||
import 'package:rain/app/data/weather.dart';
|
import 'package:rain/app/data/weather.dart';
|
||||||
import 'package:rain/app/widgets/daily/weather_daily.dart';
|
import 'package:rain/app/widgets/daily/weather_daily.dart';
|
||||||
|
@ -67,7 +67,7 @@ class _InfoWeatherCardState extends State<InfoWeatherCard> {
|
||||||
leading: IconButton(
|
leading: IconButton(
|
||||||
onPressed: () => Get.back(),
|
onPressed: () => Get.back(),
|
||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Iconsax.arrow_left_1,
|
IconsaxPlusLinear.arrow_left_3,
|
||||||
size: 20,
|
size: 20,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.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/controller/controller.dart';
|
||||||
import 'package:rain/app/modules/cards/widgets/weather_card_list.dart';
|
import 'package:rain/app/modules/cards/widgets/weather_card_list.dart';
|
||||||
import 'package:rain/app/widgets/text_form.dart';
|
import 'package:rain/app/widgets/text_form.dart';
|
||||||
|
@ -66,7 +66,7 @@ class _ListWeatherCardState extends State<ListWeatherCard> {
|
||||||
labelText: 'search'.tr,
|
labelText: 'search'.tr,
|
||||||
type: TextInputType.text,
|
type: TextInputType.text,
|
||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Iconsax.search_normal_1,
|
IconsaxPlusLinear.search_normal_1,
|
||||||
size: 20,
|
size: 20,
|
||||||
),
|
),
|
||||||
controller: searchTasks,
|
controller: searchTasks,
|
||||||
|
@ -80,7 +80,7 @@ class _ListWeatherCardState extends State<ListWeatherCard> {
|
||||||
applyFilter('');
|
applyFilter('');
|
||||||
},
|
},
|
||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Iconsax.close_circle,
|
IconsaxPlusLinear.close_circle,
|
||||||
color: Colors.grey,
|
color: Colors.grey,
|
||||||
size: 20,
|
size: 20,
|
||||||
),
|
),
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.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/api.dart';
|
||||||
import 'package:rain/app/api/city_api.dart';
|
import 'package:rain/app/api/city_api.dart';
|
||||||
import 'package:rain/app/controller/controller.dart';
|
import 'package:rain/app/controller/controller.dart';
|
||||||
|
@ -120,7 +120,7 @@ class _CreateWeatherCardState extends State<CreateWeatherCard>
|
||||||
elevation: kTextFieldElevation,
|
elevation: kTextFieldElevation,
|
||||||
labelText: 'search'.tr,
|
labelText: 'search'.tr,
|
||||||
type: TextInputType.text,
|
type: TextInputType.text,
|
||||||
icon: const Icon(Iconsax.global_search),
|
icon: const Icon(IconsaxPlusLinear.global_search),
|
||||||
controller: _controller,
|
controller: _controller,
|
||||||
margin: const EdgeInsets.only(
|
margin: const EdgeInsets.only(
|
||||||
left: 10, right: 10, top: 10),
|
left: 10, right: 10, top: 10),
|
||||||
|
@ -176,7 +176,7 @@ class _CreateWeatherCardState extends State<CreateWeatherCard>
|
||||||
controller: _controllerLat,
|
controller: _controllerLat,
|
||||||
labelText: 'lat'.tr,
|
labelText: 'lat'.tr,
|
||||||
type: TextInputType.number,
|
type: TextInputType.number,
|
||||||
icon: const Icon(Iconsax.location),
|
icon: const Icon(IconsaxPlusLinear.location),
|
||||||
onChanged: (value) => setState(() {}),
|
onChanged: (value) => setState(() {}),
|
||||||
margin:
|
margin:
|
||||||
const EdgeInsets.only(left: 10, right: 10, top: 10),
|
const EdgeInsets.only(left: 10, right: 10, top: 10),
|
||||||
|
@ -199,7 +199,7 @@ class _CreateWeatherCardState extends State<CreateWeatherCard>
|
||||||
controller: _controllerLon,
|
controller: _controllerLon,
|
||||||
labelText: 'lon'.tr,
|
labelText: 'lon'.tr,
|
||||||
type: TextInputType.number,
|
type: TextInputType.number,
|
||||||
icon: const Icon(Iconsax.location),
|
icon: const Icon(IconsaxPlusLinear.location),
|
||||||
onChanged: (value) => setState(() {}),
|
onChanged: (value) => setState(() {}),
|
||||||
margin:
|
margin:
|
||||||
const EdgeInsets.only(left: 10, right: 10, top: 10),
|
const EdgeInsets.only(left: 10, right: 10, top: 10),
|
||||||
|
@ -222,7 +222,7 @@ class _CreateWeatherCardState extends State<CreateWeatherCard>
|
||||||
controller: _controllerCity,
|
controller: _controllerCity,
|
||||||
labelText: 'city'.tr,
|
labelText: 'city'.tr,
|
||||||
type: TextInputType.name,
|
type: TextInputType.name,
|
||||||
icon: const Icon(Icons.location_city_rounded),
|
icon: const Icon(IconsaxPlusLinear.building_3),
|
||||||
onChanged: (value) => setState(() {}),
|
onChanged: (value) => setState(() {}),
|
||||||
margin:
|
margin:
|
||||||
const EdgeInsets.only(left: 10, right: 10, top: 10),
|
const EdgeInsets.only(left: 10, right: 10, top: 10),
|
||||||
|
@ -238,7 +238,7 @@ class _CreateWeatherCardState extends State<CreateWeatherCard>
|
||||||
controller: _controllerDistrict,
|
controller: _controllerDistrict,
|
||||||
labelText: 'district'.tr,
|
labelText: 'district'.tr,
|
||||||
type: TextInputType.streetAddress,
|
type: TextInputType.streetAddress,
|
||||||
icon: const Icon(Iconsax.global),
|
icon: const Icon(IconsaxPlusLinear.global),
|
||||||
onChanged: (value) => setState(() {}),
|
onChanged: (value) => setState(() {}),
|
||||||
margin:
|
margin:
|
||||||
const EdgeInsets.only(left: 10, right: 10, top: 10),
|
const EdgeInsets.only(left: 10, right: 10, top: 10),
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.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/controller/controller.dart';
|
||||||
import 'package:rain/app/modules/cards/view/info_weather_card.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/modules/cards/widgets/weather_card_container.dart';
|
||||||
|
@ -43,7 +43,7 @@ class _WeatherCardListState extends State<WeatherCardList> {
|
||||||
child: const Padding(
|
child: const Padding(
|
||||||
padding: EdgeInsets.only(right: 15),
|
padding: EdgeInsets.only(right: 15),
|
||||||
child: Icon(
|
child: Icon(
|
||||||
Iconsax.trush_square,
|
IconsaxPlusLinear.trash_square,
|
||||||
color: Colors.red,
|
color: Colors.red,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:gap/gap.dart';
|
import 'package:gap/gap.dart';
|
||||||
import 'package:geolocator/geolocator.dart';
|
import 'package:geolocator/geolocator.dart';
|
||||||
import 'package:get/get.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/api.dart';
|
||||||
import 'package:rain/app/api/city_api.dart';
|
import 'package:rain/app/api/city_api.dart';
|
||||||
import 'package:rain/app/controller/controller.dart';
|
import 'package:rain/app/controller/controller.dart';
|
||||||
|
@ -75,7 +75,7 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
Get.back();
|
Get.back();
|
||||||
},
|
},
|
||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Iconsax.arrow_left_1,
|
IconsaxPlusLinear.arrow_left_3,
|
||||||
size: 20,
|
size: 20,
|
||||||
),
|
),
|
||||||
splashColor: Colors.transparent,
|
splashColor: Colors.transparent,
|
||||||
|
@ -132,8 +132,8 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
elevation: kTextFieldElevation,
|
elevation: kTextFieldElevation,
|
||||||
labelText: 'search'.tr,
|
labelText: 'search'.tr,
|
||||||
type: TextInputType.text,
|
type: TextInputType.text,
|
||||||
icon: const Icon(
|
icon: const Icon(IconsaxPlusLinear
|
||||||
Iconsax.global_search),
|
.global_search),
|
||||||
controller: _controller,
|
controller: _controller,
|
||||||
margin: const EdgeInsets.only(
|
margin: const EdgeInsets.only(
|
||||||
left: 10, right: 10, top: 10),
|
left: 10, right: 10, top: 10),
|
||||||
|
@ -276,7 +276,7 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
setState(() => isLoading = false);
|
setState(() => isLoading = false);
|
||||||
},
|
},
|
||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Iconsax.location,
|
IconsaxPlusLinear.location,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -288,7 +288,7 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
controller: _controllerLat,
|
controller: _controllerLat,
|
||||||
labelText: 'lat'.tr,
|
labelText: 'lat'.tr,
|
||||||
type: TextInputType.number,
|
type: TextInputType.number,
|
||||||
icon: const Icon(Iconsax.location),
|
icon: const Icon(IconsaxPlusLinear.location),
|
||||||
margin: const EdgeInsets.only(
|
margin: const EdgeInsets.only(
|
||||||
left: 10,
|
left: 10,
|
||||||
right: 10,
|
right: 10,
|
||||||
|
@ -315,7 +315,7 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
controller: _controllerLon,
|
controller: _controllerLon,
|
||||||
labelText: 'lon'.tr,
|
labelText: 'lon'.tr,
|
||||||
type: TextInputType.number,
|
type: TextInputType.number,
|
||||||
icon: const Icon(Iconsax.location),
|
icon: const Icon(IconsaxPlusLinear.location),
|
||||||
margin: const EdgeInsets.only(
|
margin: const EdgeInsets.only(
|
||||||
left: 10,
|
left: 10,
|
||||||
right: 10,
|
right: 10,
|
||||||
|
@ -342,7 +342,8 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
controller: _controllerCity,
|
controller: _controllerCity,
|
||||||
labelText: 'city'.tr,
|
labelText: 'city'.tr,
|
||||||
type: TextInputType.name,
|
type: TextInputType.name,
|
||||||
icon: const Icon(Icons.location_city_rounded),
|
icon:
|
||||||
|
const Icon(IconsaxPlusLinear.building_3),
|
||||||
margin: const EdgeInsets.only(
|
margin: const EdgeInsets.only(
|
||||||
left: 10, right: 10, top: 10),
|
left: 10, right: 10, top: 10),
|
||||||
validator: (value) {
|
validator: (value) {
|
||||||
|
@ -357,7 +358,7 @@ class _SelectGeolocationState extends State<SelectGeolocation> {
|
||||||
controller: _controllerDistrict,
|
controller: _controllerDistrict,
|
||||||
labelText: 'district'.tr,
|
labelText: 'district'.tr,
|
||||||
type: TextInputType.streetAddress,
|
type: TextInputType.streetAddress,
|
||||||
icon: const Icon(Iconsax.global),
|
icon: const Icon(IconsaxPlusLinear.global),
|
||||||
margin: const EdgeInsets.only(
|
margin: const EdgeInsets.only(
|
||||||
left: 10, right: 10, top: 10),
|
left: 10, right: 10, top: 10),
|
||||||
),
|
),
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.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:isar/isar.dart';
|
||||||
import 'package:rain/app/api/api.dart';
|
import 'package:rain/app/api/api.dart';
|
||||||
import 'package:rain/app/api/city_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/cards/widgets/create_card_weather.dart';
|
||||||
import 'package:rain/app/modules/geolocation.dart';
|
import 'package:rain/app/modules/geolocation.dart';
|
||||||
import 'package:rain/app/modules/main/view/weather_main.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/modules/settings/view/settings.dart';
|
||||||
import 'package:rain/app/services/utils.dart';
|
import 'package:rain/app/services/utils.dart';
|
||||||
import 'package:rain/main.dart';
|
import 'package:rain/main.dart';
|
||||||
|
@ -32,6 +33,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
||||||
final pages = [
|
final pages = [
|
||||||
const WeatherPage(),
|
const WeatherPage(),
|
||||||
const ListWeatherCard(),
|
const ListWeatherCard(),
|
||||||
|
const MapWeather(),
|
||||||
const SettingsPage(),
|
const SettingsPage(),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -73,6 +75,11 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
||||||
final textTheme = context.textTheme;
|
final textTheme = context.textTheme;
|
||||||
final labelLarge = textTheme.labelLarge;
|
final labelLarge = textTheme.labelLarge;
|
||||||
|
|
||||||
|
final textStyle = textTheme.titleMedium?.copyWith(
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
fontSize: 18,
|
||||||
|
);
|
||||||
|
|
||||||
return DefaultTabController(
|
return DefaultTabController(
|
||||||
length: pages.length,
|
length: pages.length,
|
||||||
child: ScaffoldMessenger(
|
child: ScaffoldMessenger(
|
||||||
|
@ -88,7 +95,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
||||||
transition: Transition.downToUp);
|
transition: Transition.downToUp);
|
||||||
},
|
},
|
||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Iconsax.global_search,
|
IconsaxPlusLinear.global_search,
|
||||||
size: 18,
|
size: 18,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -184,26 +191,21 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
||||||
.isNotEmpty
|
.isNotEmpty
|
||||||
? 'loading'.tr
|
? 'loading'.tr
|
||||||
: 'searchCity'.tr,
|
: 'searchCity'.tr,
|
||||||
style: textTheme.titleMedium?.copyWith(
|
style: textStyle,
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
fontSize: 18,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
1 => Text(
|
1 => Text(
|
||||||
'cities'.tr,
|
'cities'.tr,
|
||||||
style: textTheme.titleMedium?.copyWith(
|
style: textStyle,
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
fontSize: 18,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
2 => Text(
|
2 => Text(
|
||||||
|
'map'.tr,
|
||||||
|
style: textStyle,
|
||||||
|
),
|
||||||
|
3 => Text(
|
||||||
'settings_full'.tr,
|
'settings_full'.tr,
|
||||||
style: textTheme.titleMedium?.copyWith(
|
style: textStyle,
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
fontSize: 18,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
int() => null,
|
int() => null,
|
||||||
},
|
},
|
||||||
|
@ -221,7 +223,9 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
||||||
setState(() {});
|
setState(() {});
|
||||||
},
|
},
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
visible ? Icons.close : Iconsax.search_normal_1,
|
visible
|
||||||
|
? IconsaxPlusLinear.close_circle
|
||||||
|
: IconsaxPlusLinear.search_normal_1,
|
||||||
size: 18,
|
size: 18,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
@ -240,18 +244,23 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
||||||
selectedIndex: tabIndex,
|
selectedIndex: tabIndex,
|
||||||
destinations: [
|
destinations: [
|
||||||
NavigationDestination(
|
NavigationDestination(
|
||||||
icon: const Icon(Iconsax.cloud_sunny),
|
icon: const Icon(IconsaxPlusLinear.cloud_sunny),
|
||||||
selectedIcon: const Icon(Iconsax.cloud_sunny5),
|
selectedIcon: const Icon(IconsaxPlusBold.cloud_sunny),
|
||||||
label: 'name'.tr,
|
label: 'name'.tr,
|
||||||
),
|
),
|
||||||
NavigationDestination(
|
NavigationDestination(
|
||||||
icon: const Icon(Iconsax.map_1),
|
icon: const Icon(IconsaxPlusLinear.buildings),
|
||||||
selectedIcon: const Icon(Iconsax.map5),
|
selectedIcon: const Icon(IconsaxPlusBold.buildings),
|
||||||
label: 'cities'.tr,
|
label: 'cities'.tr,
|
||||||
),
|
),
|
||||||
NavigationDestination(
|
NavigationDestination(
|
||||||
icon: const Icon(Iconsax.category),
|
icon: const Icon(IconsaxPlusLinear.map),
|
||||||
selectedIcon: const Icon(Iconsax.category5),
|
selectedIcon: const Icon(IconsaxPlusBold.map),
|
||||||
|
label: 'map'.tr,
|
||||||
|
),
|
||||||
|
NavigationDestination(
|
||||||
|
icon: const Icon(IconsaxPlusLinear.category),
|
||||||
|
selectedIcon: const Icon(IconsaxPlusBold.category),
|
||||||
label: 'settings_full'.tr,
|
label: 'settings_full'.tr,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -266,7 +275,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
||||||
const CreateWeatherCard(),
|
const CreateWeatherCard(),
|
||||||
),
|
),
|
||||||
child: const Icon(
|
child: const Icon(
|
||||||
Iconsax.add,
|
IconsaxPlusLinear.add,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
|
|
95
lib/app/modules/map/view/map.dart
Normal file
95
lib/app/modules/map/view/map.dart
Normal file
|
@ -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<MapWeather> createState() => _MapWeatherState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _MapWeatherState extends State<MapWeather> with TickerProviderStateMixin {
|
||||||
|
late final _animatedMapController = AnimatedMapController(vsync: this);
|
||||||
|
final weatherController = Get.put(WeatherController());
|
||||||
|
|
||||||
|
final Future<CacheStore> _cacheStoreFuture = _getCacheStore();
|
||||||
|
|
||||||
|
static Future<CacheStore> _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(<double>[
|
||||||
|
-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<CacheStore>(
|
||||||
|
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());
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,8 +5,9 @@ import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||||
import 'package:gap/gap.dart';
|
import 'package:gap/gap.dart';
|
||||||
import 'package:geolocator/geolocator.dart';
|
import 'package:geolocator/geolocator.dart';
|
||||||
import 'package:get/get.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:intl/intl.dart';
|
||||||
|
import 'package:line_awesome_flutter/line_awesome_flutter.dart';
|
||||||
import 'package:package_info_plus/package_info_plus.dart';
|
import 'package:package_info_plus/package_info_plus.dart';
|
||||||
import 'package:rain/app/controller/controller.dart';
|
import 'package:rain/app/controller/controller.dart';
|
||||||
import 'package:rain/app/data/weather.dart';
|
import 'package:rain/app/data/weather.dart';
|
||||||
|
@ -64,7 +65,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
SettingCard(
|
SettingCard(
|
||||||
icon: const Icon(Iconsax.brush_1),
|
icon: const Icon(IconsaxPlusLinear.brush_1),
|
||||||
text: 'appearance'.tr,
|
text: 'appearance'.tr,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
showModalBottomSheet(
|
showModalBottomSheet(
|
||||||
|
@ -92,7 +93,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.moon),
|
icon: const Icon(IconsaxPlusLinear.moon),
|
||||||
text: 'theme'.tr,
|
text: 'theme'.tr,
|
||||||
dropdown: true,
|
dropdown: true,
|
||||||
dropdownName: settings.theme?.tr,
|
dropdownName: settings.theme?.tr,
|
||||||
|
@ -123,7 +124,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.mobile),
|
icon: const Icon(IconsaxPlusLinear.mobile),
|
||||||
text: 'amoledTheme'.tr,
|
text: 'amoledTheme'.tr,
|
||||||
switcher: true,
|
switcher: true,
|
||||||
value: settings.amoledTheme,
|
value: settings.amoledTheme,
|
||||||
|
@ -135,7 +136,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.colorfilter),
|
icon: const Icon(IconsaxPlusLinear.colorfilter),
|
||||||
text: 'materialColor'.tr,
|
text: 'materialColor'.tr,
|
||||||
switcher: true,
|
switcher: true,
|
||||||
value: settings.materialColor,
|
value: settings.materialColor,
|
||||||
|
@ -147,7 +148,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.additem),
|
icon: const Icon(IconsaxPlusLinear.additem),
|
||||||
text: 'largeElement'.tr,
|
text: 'largeElement'.tr,
|
||||||
switcher: true,
|
switcher: true,
|
||||||
value: settings.largeElement,
|
value: settings.largeElement,
|
||||||
|
@ -175,7 +176,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
icon: const Icon(Iconsax.code),
|
icon: const Icon(IconsaxPlusLinear.code_1),
|
||||||
text: 'functions'.tr,
|
text: 'functions'.tr,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
showModalBottomSheet(
|
showModalBottomSheet(
|
||||||
|
@ -203,7 +204,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.map_1),
|
icon: const Icon(IconsaxPlusLinear.map),
|
||||||
text: 'location'.tr,
|
text: 'location'.tr,
|
||||||
switcher: true,
|
switcher: true,
|
||||||
value: settings.location,
|
value: settings.location,
|
||||||
|
@ -270,7 +271,8 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.notification_1),
|
icon: const Icon(
|
||||||
|
IconsaxPlusLinear.notification_1),
|
||||||
text: 'notifications'.tr,
|
text: 'notifications'.tr,
|
||||||
switcher: true,
|
switcher: true,
|
||||||
value: settings.notifications,
|
value: settings.notifications,
|
||||||
|
@ -307,7 +309,8 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.notification_status),
|
icon: const Icon(
|
||||||
|
IconsaxPlusLinear.notification_status),
|
||||||
text: 'timeRange'.tr,
|
text: 'timeRange'.tr,
|
||||||
dropdown: true,
|
dropdown: true,
|
||||||
dropdownName: '$timeRange',
|
dropdownName: '$timeRange',
|
||||||
|
@ -334,7 +337,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.timer_start),
|
icon: const Icon(IconsaxPlusLinear.timer_start),
|
||||||
text: 'timeStart'.tr,
|
text: 'timeStart'.tr,
|
||||||
info: true,
|
info: true,
|
||||||
infoSettings: true,
|
infoSettings: true,
|
||||||
|
@ -394,7 +397,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.timer_pause),
|
icon: const Icon(IconsaxPlusLinear.timer_pause),
|
||||||
text: 'timeEnd'.tr,
|
text: 'timeEnd'.tr,
|
||||||
info: true,
|
info: true,
|
||||||
infoSettings: true,
|
infoSettings: true,
|
||||||
|
@ -464,7 +467,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
icon: const Icon(Iconsax.d_square),
|
icon: const Icon(IconsaxPlusLinear.d_square),
|
||||||
text: 'data'.tr,
|
text: 'data'.tr,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
showModalBottomSheet(
|
showModalBottomSheet(
|
||||||
|
@ -492,7 +495,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.cloud_notif),
|
icon: const Icon(IconsaxPlusLinear.cloud_notif),
|
||||||
text: 'roundDegree'.tr,
|
text: 'roundDegree'.tr,
|
||||||
switcher: true,
|
switcher: true,
|
||||||
value: settings.roundDegree,
|
value: settings.roundDegree,
|
||||||
|
@ -510,7 +513,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.sun_1),
|
icon: const Icon(IconsaxPlusLinear.sun_1),
|
||||||
text: 'degrees'.tr,
|
text: 'degrees'.tr,
|
||||||
dropdown: true,
|
dropdown: true,
|
||||||
dropdownName: settings.degrees.tr,
|
dropdownName: settings.degrees.tr,
|
||||||
|
@ -533,7 +536,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.rulerpen),
|
icon: const Icon(IconsaxPlusLinear.rulerpen),
|
||||||
text: 'measurements'.tr,
|
text: 'measurements'.tr,
|
||||||
dropdown: true,
|
dropdown: true,
|
||||||
dropdownName: settings.measurements.tr,
|
dropdownName: settings.measurements.tr,
|
||||||
|
@ -557,7 +560,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.wind),
|
icon: const Icon(IconsaxPlusLinear.wind),
|
||||||
text: 'wind'.tr,
|
text: 'wind'.tr,
|
||||||
dropdown: true,
|
dropdown: true,
|
||||||
dropdownName: settings.wind.tr,
|
dropdownName: settings.wind.tr,
|
||||||
|
@ -573,7 +576,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.ruler),
|
icon: const Icon(IconsaxPlusLinear.ruler),
|
||||||
text: 'pressure'.tr,
|
text: 'pressure'.tr,
|
||||||
dropdown: true,
|
dropdown: true,
|
||||||
dropdownName: settings.pressure.tr,
|
dropdownName: settings.pressure.tr,
|
||||||
|
@ -589,7 +592,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.clock),
|
icon: const Icon(IconsaxPlusLinear.clock_1),
|
||||||
text: 'timeformat'.tr,
|
text: 'timeformat'.tr,
|
||||||
dropdown: true,
|
dropdown: true,
|
||||||
dropdownName: settings.timeformat.tr,
|
dropdownName: settings.timeformat.tr,
|
||||||
|
@ -615,7 +618,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
icon: const Icon(Iconsax.setting_3),
|
icon: const Icon(IconsaxPlusLinear.setting_3),
|
||||||
text: 'widget'.tr,
|
text: 'widget'.tr,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
showModalBottomSheet(
|
showModalBottomSheet(
|
||||||
|
@ -643,7 +646,8 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.bucket_square),
|
icon:
|
||||||
|
const Icon(IconsaxPlusLinear.bucket_square),
|
||||||
text: 'widgetBackground'.tr,
|
text: 'widgetBackground'.tr,
|
||||||
info: true,
|
info: true,
|
||||||
infoWidget: CircleAvatar(
|
infoWidget: CircleAvatar(
|
||||||
|
@ -711,7 +715,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Iconsax.tick_square,
|
IconsaxPlusLinear.tick_square,
|
||||||
),
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
if (colorBackground == null) {
|
if (colorBackground == null) {
|
||||||
|
@ -735,7 +739,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.text_block),
|
icon: const Icon(IconsaxPlusLinear.text_block),
|
||||||
text: 'widgetText'.tr,
|
text: 'widgetText'.tr,
|
||||||
info: true,
|
info: true,
|
||||||
infoWidget: CircleAvatar(
|
infoWidget: CircleAvatar(
|
||||||
|
@ -800,7 +804,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Iconsax.tick_square,
|
IconsaxPlusLinear.tick_square,
|
||||||
),
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
if (colorText == null) return;
|
if (colorText == null) return;
|
||||||
|
@ -832,7 +836,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
icon: const Icon(Iconsax.language_square),
|
icon: const Icon(IconsaxPlusLinear.language_square),
|
||||||
text: 'language'.tr,
|
text: 'language'.tr,
|
||||||
info: true,
|
info: true,
|
||||||
infoSettings: true,
|
infoSettings: true,
|
||||||
|
@ -899,7 +903,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
icon: const Icon(Iconsax.dollar_square),
|
icon: const Icon(IconsaxPlusLinear.dollar_square),
|
||||||
text: 'support'.tr,
|
text: 'support'.tr,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
showModalBottomSheet(
|
showModalBottomSheet(
|
||||||
|
@ -927,14 +931,14 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.card),
|
icon: const Icon(IconsaxPlusLinear.card),
|
||||||
text: 'DonationAlerts',
|
text: 'DonationAlerts',
|
||||||
onPressed: () => urlLauncher(
|
onPressed: () => urlLauncher(
|
||||||
'https://www.donationalerts.com/r/darkmoonight'),
|
'https://www.donationalerts.com/r/darkmoonight'),
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.wallet),
|
icon: const Icon(IconsaxPlusLinear.wallet),
|
||||||
text: 'ЮMoney',
|
text: 'ЮMoney',
|
||||||
onPressed: () => urlLauncher(
|
onPressed: () => urlLauncher(
|
||||||
'https://yoomoney.ru/to/4100117672775961'),
|
'https://yoomoney.ru/to/4100117672775961'),
|
||||||
|
@ -951,7 +955,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
icon: const Icon(Iconsax.link_square),
|
icon: const Icon(IconsaxPlusLinear.link_square),
|
||||||
text: 'groups'.tr,
|
text: 'groups'.tr,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
showModalBottomSheet(
|
showModalBottomSheet(
|
||||||
|
@ -979,7 +983,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.voice_square),
|
icon: const Icon(LineAwesomeIcons.discord),
|
||||||
text: 'Discord',
|
text: 'Discord',
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
final Uri url = Uri.parse(
|
final Uri url = Uri.parse(
|
||||||
|
@ -992,7 +996,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
elevation: 4,
|
elevation: 4,
|
||||||
icon: const Icon(Iconsax.message_square),
|
icon: const Icon(LineAwesomeIcons.telegram),
|
||||||
text: 'Telegram',
|
text: 'Telegram',
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
final Uri url =
|
final Uri url =
|
||||||
|
@ -1015,7 +1019,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
icon: const Icon(Iconsax.document),
|
icon: const Icon(IconsaxPlusLinear.document),
|
||||||
text: 'license'.tr,
|
text: 'license'.tr,
|
||||||
onPressed: () => Get.to(
|
onPressed: () => Get.to(
|
||||||
LicensePage(
|
LicensePage(
|
||||||
|
@ -1037,7 +1041,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
icon: const Icon(Iconsax.hierarchy_square_2),
|
icon: const Icon(IconsaxPlusLinear.hierarchy_square_2),
|
||||||
text: 'version'.tr,
|
text: 'version'.tr,
|
||||||
info: true,
|
info: true,
|
||||||
infoWidget: _TextInfo(
|
infoWidget: _TextInfo(
|
||||||
|
@ -1045,10 +1049,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SettingCard(
|
SettingCard(
|
||||||
icon: Image.asset(
|
icon: const Icon(LineAwesomeIcons.github),
|
||||||
'assets/images/github.png',
|
|
||||||
scale: 20,
|
|
||||||
),
|
|
||||||
text: '${'project'.tr} GitHub',
|
text: '${'project'.tr} GitHub',
|
||||||
onPressed: () =>
|
onPressed: () =>
|
||||||
urlLauncher('https://github.com/darkmoonight/Rain'),
|
urlLauncher('https://github.com/darkmoonight/Rain'),
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:iconsax/iconsax.dart';
|
import 'package:iconsax_plus/iconsax_plus.dart';
|
||||||
|
|
||||||
class SettingCard extends StatelessWidget {
|
class SettingCard extends StatelessWidget {
|
||||||
const SettingCard({
|
const SettingCard({
|
||||||
|
@ -63,7 +63,7 @@ class SettingCard extends StatelessWidget {
|
||||||
? DropdownButton<String>(
|
? DropdownButton<String>(
|
||||||
icon: const Padding(
|
icon: const Padding(
|
||||||
padding: EdgeInsets.only(left: 7),
|
padding: EdgeInsets.only(left: 7),
|
||||||
child: Icon(Iconsax.arrow_down_1),
|
child: Icon(IconsaxPlusLinear.arrow_down),
|
||||||
),
|
),
|
||||||
iconSize: 15,
|
iconSize: 15,
|
||||||
alignment: AlignmentDirectional.centerEnd,
|
alignment: AlignmentDirectional.centerEnd,
|
||||||
|
@ -85,14 +85,14 @@ class SettingCard extends StatelessWidget {
|
||||||
children: [
|
children: [
|
||||||
infoWidget!,
|
infoWidget!,
|
||||||
const Icon(
|
const Icon(
|
||||||
Iconsax.arrow_right_3,
|
IconsaxPlusLinear.arrow_right_3,
|
||||||
size: 18,
|
size: 18,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
: infoWidget!
|
: infoWidget!
|
||||||
: const Icon(
|
: const Icon(
|
||||||
Iconsax.arrow_right_3,
|
IconsaxPlusLinear.arrow_right_3,
|
||||||
size: 18,
|
size: 18,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.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:intl/intl.dart';
|
||||||
import 'package:rain/app/data/weather.dart';
|
import 'package:rain/app/data/weather.dart';
|
||||||
import 'package:rain/app/widgets/desc/desc_container.dart';
|
import 'package:rain/app/widgets/desc/desc_container.dart';
|
||||||
|
@ -65,7 +65,7 @@ class _InfoDailyCardState extends State<InfoDailyCard> {
|
||||||
Get.back();
|
Get.back();
|
||||||
},
|
},
|
||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Iconsax.arrow_left_1,
|
IconsaxPlusLinear.arrow_left_3,
|
||||||
size: 20,
|
size: 20,
|
||||||
),
|
),
|
||||||
splashColor: Colors.transparent,
|
splashColor: Colors.transparent,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.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/data/weather.dart';
|
||||||
import 'package:rain/app/widgets/daily/info_daily_card.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/widgets/daily/list_daily_card.dart';
|
||||||
|
@ -32,7 +32,7 @@ class _WeatherMoreState extends State<WeatherMore> {
|
||||||
Get.back();
|
Get.back();
|
||||||
},
|
},
|
||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Iconsax.arrow_left_1,
|
IconsaxPlusLinear.arrow_left_3,
|
||||||
size: 20,
|
size: 20,
|
||||||
),
|
),
|
||||||
splashColor: transparent,
|
splashColor: transparent,
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_glow/flutter_glow.dart';
|
|
||||||
import 'package:gap/gap.dart';
|
import 'package:gap/gap.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
|
@ -51,12 +50,17 @@ class _WeatherNowState extends State<WeatherNow> {
|
||||||
fit: BoxFit.fill,
|
fit: BoxFit.fill,
|
||||||
height: 200,
|
height: 200,
|
||||||
),
|
),
|
||||||
GlowText(
|
Text(
|
||||||
'${roundDegree ? widget.degree.round() : widget.degree}',
|
'${roundDegree ? widget.degree.round() : widget.degree}',
|
||||||
style: context.textTheme.displayLarge?.copyWith(
|
style: context.textTheme.displayLarge?.copyWith(
|
||||||
fontSize: 90,
|
fontSize: 90,
|
||||||
fontWeight: FontWeight.w800,
|
fontWeight: FontWeight.w800,
|
||||||
),
|
shadows: const [
|
||||||
|
Shadow(
|
||||||
|
blurRadius: 15,
|
||||||
|
offset: Offset(5, 5),
|
||||||
|
)
|
||||||
|
]),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
statusWeather.getText(widget.weather),
|
statusWeather.getText(widget.weather),
|
||||||
|
|
|
@ -132,5 +132,6 @@ class RuRu {
|
||||||
'hourlyVariables': 'Почасовые погодные условия',
|
'hourlyVariables': 'Почасовые погодные условия',
|
||||||
'dailyVariables': 'Ежедневные погодные условия',
|
'dailyVariables': 'Ежедневные погодные условия',
|
||||||
'largeElement': 'Отображение погоды большим элементом',
|
'largeElement': 'Отображение погоды большим элементом',
|
||||||
|
'map': 'Карта',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
177
pubspec.lock
177
pubspec.lock
|
@ -26,10 +26,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: ansicolor
|
name: ansicolor
|
||||||
sha256: "8bf17a8ff6ea17499e40a2d2542c2f481cd7615760c6d34065cb22bfd22e6880"
|
sha256: "50e982d500bc863e1d703448afdbf9e5a72eb48840a4f766fa361ffd6877055f"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.2"
|
version: "2.0.3"
|
||||||
archive:
|
archive:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -214,6 +214,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.0"
|
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:
|
dart_style:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -262,6 +270,22 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.5.0+1"
|
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:
|
dio_web_adapter:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -290,10 +314,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: ffi
|
name: ffi
|
||||||
sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21"
|
sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.2"
|
version: "2.1.3"
|
||||||
file:
|
file:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -323,15 +347,6 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.0"
|
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:
|
flutter_hsvcolor_picker:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -385,6 +400,38 @@ packages:
|
||||||
description: flutter
|
description: flutter
|
||||||
source: sdk
|
source: sdk
|
||||||
version: "0.0.0"
|
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:
|
flutter_native_splash:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
|
@ -595,14 +642,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.0.2"
|
version: "4.0.2"
|
||||||
iconsax:
|
iconsax_plus:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: iconsax
|
name: iconsax_plus
|
||||||
sha256: fb0144c61f41f3f8a385fadc27783ea9f5359670be885ed7f35cef32565d5228
|
sha256: e9e51b0652a1d3ceea5fedbfc2c1bb4ad432c2ceb7be7de2e30caf085678933c
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.0.8"
|
version: "1.0.0"
|
||||||
image:
|
image:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -691,6 +738,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.0"
|
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:
|
leak_tracker:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -715,6 +770,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.1"
|
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:
|
lints:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -723,6 +786,22 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.0.0"
|
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:
|
logging:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -755,6 +834,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.11.1"
|
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:
|
meta:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -763,6 +850,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.15.0"
|
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:
|
mime:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -823,10 +918,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: path_provider_android
|
name: path_provider_android
|
||||||
sha256: "490539678396d4c3c0b06efdaab75ae60675c3e0c66f72bc04c2e2c1e0e2abeb"
|
sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.2.9"
|
version: "2.2.10"
|
||||||
path_provider_foundation:
|
path_provider_foundation:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -883,6 +978,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.8"
|
version: "2.1.8"
|
||||||
|
polylabel:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: polylabel
|
||||||
|
sha256: "41b9099afb2aa6c1730bdd8a0fab1400d287694ec7615dd8516935fa3144214b"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.1"
|
||||||
pool:
|
pool:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -891,6 +994,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.5.1"
|
version: "1.5.1"
|
||||||
|
proj4dart:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: proj4dart
|
||||||
|
sha256: c8a659ac9b6864aa47c171e78d41bbe6f5e1d7bd790a5814249e6b68bc44324e
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.0"
|
||||||
pub_semver:
|
pub_semver:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -1008,6 +1119,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.2.0"
|
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:
|
term_glyph:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -1064,6 +1183,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.3.2"
|
version: "1.3.2"
|
||||||
|
unicode:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: unicode
|
||||||
|
sha256: "0f69e46593d65245774d4f17125c6084d2c20b4e473a983f6e21b7d7762218f1"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.3.1"
|
||||||
universal_io:
|
universal_io:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -1196,10 +1323,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: win32
|
name: win32
|
||||||
sha256: "015002c060f1ae9f41a818f2d5640389cc05283e368be19dc8d77cecb43c40c9"
|
sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.5.3"
|
version: "5.5.4"
|
||||||
win32_registry:
|
win32_registry:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -1208,6 +1335,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.4"
|
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:
|
workmanager:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
33
pubspec.yaml
33
pubspec.yaml
|
@ -17,22 +17,18 @@ dependencies:
|
||||||
gap: ^3.0.1
|
gap: ^3.0.1
|
||||||
dio: ^5.5.0+1
|
dio: ^5.5.0+1
|
||||||
intl: ^0.19.0
|
intl: ^0.19.0
|
||||||
isar:
|
|
||||||
version: ^3.1.7
|
|
||||||
hosted: https://pub.isar-community.dev/
|
|
||||||
shimmer: ^3.0.0
|
shimmer: ^3.0.0
|
||||||
iconsax: ^0.0.8
|
latlong2: ^0.9.1
|
||||||
timezone: ^0.9.4
|
timezone: ^0.9.4
|
||||||
geocoding: ^3.0.0
|
geocoding: ^3.0.0
|
||||||
geolocator: ^13.0.1
|
geolocator: ^13.0.1
|
||||||
home_widget: ^0.6.0
|
home_widget: ^0.6.0
|
||||||
workmanager: ^0.5.2
|
workmanager: ^0.5.2
|
||||||
|
flutter_map: ^7.0.2
|
||||||
google_fonts: ^6.2.1
|
google_fonts: ^6.2.1
|
||||||
url_launcher: ^6.3.0
|
url_launcher: ^6.3.0
|
||||||
|
iconsax_plus: ^1.0.0
|
||||||
time_machine: ^0.9.17
|
time_machine: ^0.9.17
|
||||||
flutter_glow:
|
|
||||||
git:
|
|
||||||
url: https://github.com/payam-zahedi/flutter-glow.git
|
|
||||||
dynamic_color: ^1.7.0
|
dynamic_color: ^1.7.0
|
||||||
path_provider: ^2.1.4
|
path_provider: ^2.1.4
|
||||||
# quick_settings: ^1.0.1
|
# quick_settings: ^1.0.1
|
||||||
|
@ -41,17 +37,26 @@ dependencies:
|
||||||
device_info_plus: ^10.1.2
|
device_info_plus: ^10.1.2
|
||||||
package_info_plus: ^8.0.2
|
package_info_plus: ^8.0.2
|
||||||
connectivity_plus: ^6.0.5
|
connectivity_plus: ^6.0.5
|
||||||
|
flutter_map_cache: ^1.5.1
|
||||||
freezed_annotation: ^2.4.4
|
freezed_annotation: ^2.4.4
|
||||||
isar_flutter_libs:
|
|
||||||
version: ^3.1.7
|
|
||||||
hosted: https://pub.isar-community.dev/
|
|
||||||
flutter_displaymode: ^0.6.0
|
flutter_displaymode: ^0.6.0
|
||||||
lat_lng_to_timezone: ^0.2.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
|
flutter_hsvcolor_picker: ^1.5.1
|
||||||
scrollable_positioned_list: ^0.3.8
|
scrollable_positioned_list: ^0.3.8
|
||||||
flutter_local_notifications: ^17.2.2
|
flutter_local_notifications: ^17.2.2
|
||||||
|
material_floating_search_bar_2: ^0.5.0
|
||||||
internet_connection_checker_plus: ^2.5.1
|
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
|
# Uncomment this for publishing FLOSS variant
|
||||||
# dependency_overrides:
|
# dependency_overrides:
|
||||||
|
@ -67,12 +72,12 @@ dev_dependencies:
|
||||||
freezed: ^2.5.7
|
freezed: ^2.5.7
|
||||||
build_runner: ^2.4.12
|
build_runner: ^2.4.12
|
||||||
flutter_lints: ^4.0.0
|
flutter_lints: ^4.0.0
|
||||||
isar_generator:
|
|
||||||
version: ^3.1.7
|
|
||||||
hosted: https://pub.isar-community.dev/
|
|
||||||
json_serializable: ^6.8.0
|
json_serializable: ^6.8.0
|
||||||
flutter_native_splash: ^2.4.1
|
flutter_native_splash: ^2.4.1
|
||||||
flutter_launcher_icons: ^0.13.1
|
flutter_launcher_icons: ^0.13.1
|
||||||
|
isar_generator:
|
||||||
|
version: ^3.1.7
|
||||||
|
hosted: https://pub.isar-community.dev/
|
||||||
|
|
||||||
flutter_launcher_icons:
|
flutter_launcher_icons:
|
||||||
android: true
|
android: true
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue