Files

72 lines
1.7 KiB
Dart
Raw Normal View History

2022-06-27 17:37:25 +08:00
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../models/region.dart';
class RegionProvider extends ChangeNotifier {
RegionProvider() {
loadRegionData();
}
String _provinceName = '';
String _cityName = '';
String _tempProvinceName = '';
String _tempCityName = '';
String get provinceName => _provinceName;
String get cityName => _cityName;
String get tempProvinceName => _tempProvinceName;
String get tempCityName => _tempCityName;
final Future<SharedPreferences> _prefs = SharedPreferences.getInstance();
loadRegionData() {
_prefs.then((prefs) {
if (prefs.getString('REGION') != null) {
final region =
RegionData.fromJson(jsonDecode(prefs.getString('REGION')));
_provinceName = region.provinceName;
_cityName = region.cityName;
_tempProvinceName = region.provinceName;
_tempCityName = region.cityName;
notifyListeners();
}
});
}
updateRegion(pname, cname) {
// _provinceName = pname;
// _cityName = cname;
_tempProvinceName = pname;
_tempCityName = cname;
notifyListeners();
}
//将临时变量保存到正式变量,并保存本地
saveRegion() {
_provinceName = _tempProvinceName;
_cityName = _tempCityName;
print(_tempCityName);
final region = <String, dynamic>{
"provinceName": _tempProvinceName,
'cityName': _tempCityName
};
_prefs.then((prefs) {
prefs.setString('REGION', jsonEncode(region));
});
notifyListeners();
}
resetTemp() async {
_tempProvinceName = _provinceName;
_tempCityName = _cityName;
notifyListeners();
}
}