Use alternative face thumbnails in suggestions
This commit is contained in:
parent
a09b71cc15
commit
3869802e4c
|
@ -1,4 +1,5 @@
|
|||
import "dart:developer";
|
||||
import "dart:io";
|
||||
import "dart:typed_data";
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
|
@ -7,6 +8,7 @@ import "package:photos/face/db.dart";
|
|||
import "package:photos/face/model/face.dart";
|
||||
import 'package:photos/models/file/file.dart';
|
||||
import 'package:photos/ui/viewer/file/thumbnail_widget.dart';
|
||||
import "package:photos/ui/viewer/people/cropped_face_image_view.dart";
|
||||
import "package:photos/utils/face/face_box_crop.dart";
|
||||
import "package:photos/utils/thumbnail_util.dart";
|
||||
|
||||
|
@ -24,6 +26,7 @@ class PersonFaceWidget extends StatelessWidget {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (Platform.isIOS) {
|
||||
return FutureBuilder<Uint8List?>(
|
||||
future: getFaceCrop(),
|
||||
builder: (context, snapshot) {
|
||||
|
@ -48,6 +51,37 @@ class PersonFaceWidget extends StatelessWidget {
|
|||
}
|
||||
},
|
||||
);
|
||||
} else {
|
||||
return FutureBuilder<Face?>(
|
||||
future: getFace(),
|
||||
builder: (context, snapshot) {
|
||||
if (snapshot.hasData) {
|
||||
final Face face = snapshot.data!;
|
||||
return Stack(
|
||||
fit: StackFit.expand,
|
||||
children: [
|
||||
CroppedFaceImageView(enteFile: file, face: face),
|
||||
],
|
||||
);
|
||||
} else {
|
||||
if (snapshot.hasError) {
|
||||
log('Error getting cover face for person: ${snapshot.error}');
|
||||
}
|
||||
return ThumbnailWidget(
|
||||
file,
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<Face?> getFace() async {
|
||||
return await FaceMLDataDB.instance.getCoverFaceForPerson(
|
||||
recentFileID: file.uploadedFileID!,
|
||||
personID: personId,
|
||||
clusterID: clusterID,
|
||||
);
|
||||
}
|
||||
|
||||
Future<Uint8List?> getFaceCrop() async {
|
||||
|
|
Loading…
Reference in a new issue