locations_photo_controller.dart 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import 'dart:io';
  2. import 'package:clean/base/base_controller.dart';
  3. import 'package:clean/module/image_picker/image_picker_util.dart';
  4. import 'package:clean/module/locations_photo/locations_single_photo_view.dart';
  5. import 'package:clean/module/people_photo/photo_group.dart';
  6. import 'package:get/get.dart';
  7. import 'package:path_provider/path_provider.dart';
  8. import 'package:path/path.dart' as p;
  9. import 'package:wechat_assets_picker/wechat_assets_picker.dart';
  10. class LocationsPhotoController extends BaseController {
  11. final RxList<PhotoGroup> photoGroups = <PhotoGroup>[].obs;
  12. @override
  13. onInit() {
  14. super.onInit();
  15. loadLocationPhoto();
  16. }
  17. void loadLocationPhoto() {
  18. photoGroups.clear();
  19. if (ImagePickerUtil.locationPhotos.isEmpty) {
  20. print('locationPhotos.isEmpty');
  21. return;
  22. }
  23. if (ImagePickerUtil.locationPhotos.values.isNotEmpty) {
  24. print('locationPhotos.isNotEmpty ${ImagePickerUtil.locationPhotos.values}');
  25. for (var entry in ImagePickerUtil.locationPhotos.entries) {
  26. photoGroups.add(PhotoGroup(
  27. isSelected: false,
  28. images: entry.value,
  29. location: entry.key,
  30. ));
  31. }
  32. }
  33. }
  34. @override
  35. void onReady() {
  36. // TODO: implement onReady
  37. super.onReady();
  38. restoreSelections();
  39. }
  40. void clickPhotoGroup(PhotoGroup photoGroup) {
  41. print('clickPhotoGroup ${photoGroup.location}');
  42. LocationsSinglePhotoPage.start(photoGroup: photoGroup);
  43. }
  44. PhotoGroup getGroupByLocation(String? location) {
  45. return photoGroups.firstWhere((group) => group.location == location);
  46. }
  47. void restoreSelections() {
  48. for (var group in photoGroups) {
  49. for (int i = 0; i < group.images.length; i++) {
  50. group.selectedImages[i] = ImagePickerUtil.selectedLocationPhotosIds.contains(group.images[i].id);
  51. }
  52. }
  53. }
  54. }