locations_photo_controller.dart 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import 'dart:io';
  2. import 'package:clean/module/image_picker/image_picker_util.dart';
  3. import 'package:clean/module/people_photo/photo_group.dart';
  4. import 'package:get/get.dart';
  5. import 'package:path_provider/path_provider.dart';
  6. import 'package:path/path.dart' as p;
  7. import 'package:wechat_assets_picker/wechat_assets_picker.dart';
  8. class LocationsPhotoController extends GetxController {
  9. final RxList<PhotoGroup> photoGroups = <PhotoGroup>[].obs;
  10. @override
  11. onInit() {
  12. super.onInit();
  13. loadLocationPhoto();
  14. // loadPhotosFromDirectory();
  15. }
  16. Future<void> loadPhotosFromDirectory() async {
  17. try {
  18. final List<AssetEntity>? result = await AssetPicker.pickAssets(
  19. Get.context!,
  20. );
  21. if (result != null && result.isNotEmpty) {
  22. photoGroups.add(PhotoGroup(
  23. title: 'photo: ${result.length}',
  24. imageCount: result.length,
  25. isSelected: false,
  26. images: result,
  27. location: "测试".obs,
  28. ));
  29. }
  30. } catch (e) {
  31. print('Error loading photos: $e');
  32. }
  33. }
  34. void loadLocationPhoto() {
  35. photoGroups.clear();
  36. RxMap<String, List<AssetEntity>> locationPhotos = ImagePickerUtil.locationPhotos;
  37. if (locationPhotos.isNotEmpty) {
  38. for (var entry in locationPhotos.entries) {
  39. photoGroups.add(PhotoGroup(
  40. title: 'photo: ${entry.value.length}',
  41. imageCount: entry.value.length,
  42. isSelected: false,
  43. images: entry.value,
  44. location: entry.key.obs,
  45. ));
  46. }
  47. }
  48. }
  49. }