mirror of
https://github.com/PranshulGG/WeatherMaster.git
synced 2026-10-22 11:02:53 -05:00
141 lines
4.2 KiB
Dart
141 lines
4.2 KiB
Dart
import 'package:flutter/material.dart';
|
|
import '../utils/preferences_helper.dart';
|
|
|
|
class UnitSettingsNotifier extends ChangeNotifier {
|
|
// Default values
|
|
String _tempUnit = "Celsius";
|
|
String _windUnit = "Km/h";
|
|
String _visibilityUnit = "Km";
|
|
String _precipitationUnit = "mm";
|
|
String _pressureUnit = "hPa";
|
|
String _timeUnit = "12 hr";
|
|
String _aqiUnit = "United States";
|
|
bool _useDeviceCompass = false;
|
|
bool _useCardBackgroundAnimations = true;
|
|
bool _useOnlyMaterialScheme = false;
|
|
bool _showFrog = true;
|
|
|
|
|
|
|
|
// Getters
|
|
String get tempUnit => _tempUnit;
|
|
String get windUnit => _windUnit;
|
|
String get visibilityUnit => _visibilityUnit;
|
|
String get precipitationUnit => _precipitationUnit;
|
|
String get pressureUnit => _pressureUnit;
|
|
String get timeUnit => _timeUnit;
|
|
String get aqiUnit => _aqiUnit;
|
|
bool get useDeviceCompass => _useDeviceCompass;
|
|
bool get useCardBackgroundAnimations => _useCardBackgroundAnimations;
|
|
bool get useOnlyMaterialScheme => _useOnlyMaterialScheme;
|
|
bool get showFrog => _showFrog;
|
|
|
|
|
|
|
|
UnitSettingsNotifier() {
|
|
_loadAllUnits();
|
|
}
|
|
|
|
Future<void> _loadAllUnits() async {
|
|
_tempUnit = await PreferencesHelper.getString("selectedTempUnit") ?? _tempUnit;
|
|
_windUnit = await PreferencesHelper.getString("selectedWindUnit") ?? _windUnit;
|
|
_visibilityUnit = await PreferencesHelper.getString("selectedVisibilityUnit") ?? _visibilityUnit;
|
|
_precipitationUnit = await PreferencesHelper.getString("selectedPrecipitationUnit") ?? _precipitationUnit;
|
|
_pressureUnit = await PreferencesHelper.getString("selectedPressureUnit") ?? _pressureUnit;
|
|
_timeUnit = await PreferencesHelper.getString("selectedTimeUnit") ?? _timeUnit;
|
|
_aqiUnit = await PreferencesHelper.getString("selectedAQIUnit") ?? _aqiUnit;
|
|
_useDeviceCompass = await PreferencesHelper.getBool("useDeviceCompass") ?? _useDeviceCompass;
|
|
_useCardBackgroundAnimations = await PreferencesHelper.getBool("CardBackgroundAnimations") ?? _useCardBackgroundAnimations;
|
|
_useOnlyMaterialScheme = await PreferencesHelper.getBool("OnlyMaterialScheme") ?? _useOnlyMaterialScheme;
|
|
_showFrog = await PreferencesHelper.getBool("showFroggy") ?? _showFrog;
|
|
|
|
|
|
|
|
notifyListeners();
|
|
}
|
|
|
|
// Setters with notification
|
|
void updateTempUnit(String value) {
|
|
if (_tempUnit != value) {
|
|
_tempUnit = value;
|
|
PreferencesHelper.setString("selectedTempUnit", value);
|
|
notifyListeners();
|
|
}
|
|
}
|
|
|
|
void updateWindUnit(String value) {
|
|
if (_windUnit != value) {
|
|
_windUnit = value;
|
|
PreferencesHelper.setString("selectedWindUnit", value);
|
|
notifyListeners();
|
|
}
|
|
}
|
|
|
|
void updateVisibilityUnit(String value) {
|
|
if (_visibilityUnit != value) {
|
|
_visibilityUnit = value;
|
|
PreferencesHelper.setString("selectedVisibilityUnit", value);
|
|
notifyListeners();
|
|
}
|
|
}
|
|
|
|
void updatePrecipitationUnit(String value) {
|
|
if (_precipitationUnit != value) {
|
|
_precipitationUnit = value;
|
|
PreferencesHelper.setString("selectedPrecipitationUnit", value);
|
|
notifyListeners();
|
|
}
|
|
}
|
|
|
|
void updatePressureUnit(String value) {
|
|
if (_pressureUnit != value) {
|
|
_pressureUnit = value;
|
|
PreferencesHelper.setString("selectedPressureUnit", value);
|
|
notifyListeners();
|
|
}
|
|
}
|
|
|
|
void updateTimeUnit(String value) {
|
|
if (_timeUnit != value) {
|
|
_timeUnit = value;
|
|
PreferencesHelper.setString("selectedTimeUnit", value);
|
|
notifyListeners();
|
|
}
|
|
}
|
|
|
|
void updateAQIUnit(String value) {
|
|
if (_aqiUnit != value) {
|
|
_aqiUnit = value;
|
|
PreferencesHelper.setString("selectedAQIUnit", value);
|
|
notifyListeners();
|
|
}
|
|
}
|
|
|
|
void updateUseDeviceCompass(bool value) {
|
|
_useDeviceCompass = value;
|
|
PreferencesHelper.setBool("useDeviceCompass", value);
|
|
notifyListeners();
|
|
}
|
|
|
|
void updateuseCardBackgroundAnimations(bool value) {
|
|
_useCardBackgroundAnimations = value;
|
|
PreferencesHelper.setBool("CardBackgroundAnimations", value);
|
|
notifyListeners();
|
|
}
|
|
|
|
void updateuseOnlyMaterialScheme(bool value) {
|
|
_useOnlyMaterialScheme = value;
|
|
PreferencesHelper.setBool("OnlyMaterialScheme", value);
|
|
notifyListeners();
|
|
}
|
|
|
|
void updateShowFroggy(bool value) {
|
|
_showFrog = value;
|
|
PreferencesHelper.setBool("showFroggy", value);
|
|
notifyListeners();
|
|
}
|
|
|
|
|
|
|
|
}
|