Files
fengshui_compass/lib/states/compass_image.dart
2022-07-05 16:44:07 +08:00

70 lines
2.1 KiB
Dart

import 'dart:io';
import 'package:flutter/widgets.dart';
import 'package:image_picker/image_picker.dart';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
class CompassImageProvider extends ChangeNotifier {
CompassImageProvider() {
loadCompassImage();
}
final Future<SharedPreferences> _prefs = SharedPreferences.getInstance();
ImageProvider _rotateImage;
ImageProvider get rotateImage => _rotateImage;
// 加载罗盘图片
void loadCompassImage() async {
final prefs = await _prefs;
final appDataDirectory = await getApplicationDocumentsDirectory();
String pathString = prefs.getString('rotate_image');
if (pathString != null) {
File file = File(join(appDataDirectory.path, pathString));
var isFileExist = await file.exists();
if (isFileExist) {
_rotateImage = FileImage(file);
} else {
_rotateImage = null;
}
} else {
_rotateImage = null;
}
notifyListeners();
}
void setSelectedRotateImage(XFile res) async {
final appDataDirectory = await getApplicationDocumentsDirectory();
print(res.path);
String pathString = res.name;
if (pathString == null) {
return;
}
// imageCache.clear();
// res.saveTo(join(appDataDirectory.path, res.name));
res.saveTo(
join(appDataDirectory.path, 'rotate_image${extension(res.name)}'));
final prefs = await _prefs;
// final appDataDirectory = await getApplicationDocumentsDirectory();
// File file = File(join(appDataDirectory.path, pathString));
// File file =
// File(join(appDataDirectory.path, 'rotate_image${extension(res.name)}'));
File file = File(res.path);
print(file);
var isFileExist = await file.exists();
print(isFileExist);
if (isFileExist) {
_rotateImage = FileImage(file);
} else {
_rotateImage = null;
}
prefs.setString('rotate_image', 'rotate_image${extension(res.name)}');
// prefs.setString('rotate_image', pathString);
// imageCache.clearLiveImages();
notifyListeners();
}
}