diff --git a/mobile/lib/face/db.dart b/mobile/lib/face/db.dart index 585f7d7bb..1cbaf165b 100644 --- a/mobile/lib/face/db.dart +++ b/mobile/lib/face/db.dart @@ -419,6 +419,14 @@ class FaceMLDataDB { return result; } + Future getTotalFaceCount() async { + final db = await instance.database; + final List> maps = await db.rawQuery( + 'SELECT COUNT(*) as count FROM $facesTable WHERE $faceScore > $kMinHighQualityFaceScore AND $faceBlur > $kLaplacianThreshold', + ); + return maps.first['count'] as int; + } + Future resetClusterIDs() async { final db = await instance.database; await db.update( diff --git a/mobile/lib/ui/settings/debug/face_debug_section_widget.dart b/mobile/lib/ui/settings/debug/face_debug_section_widget.dart index ce28f0f04..ca4d3ddec 100644 --- a/mobile/lib/ui/settings/debug/face_debug_section_widget.dart +++ b/mobile/lib/ui/settings/debug/face_debug_section_widget.dart @@ -93,6 +93,23 @@ class _FaceDebugSectionWidgetState extends State { } }, ), + MenuItemWidget( + captionedTextWidget: FutureBuilder( + future: FaceMLDataDB.instance.getTotalFaceCount(), + builder: (context, snapshot) { + if (snapshot.hasData) { + return CaptionedTextWidget( + title: "${snapshot.data!} high quality faces", + ); + } + return const SizedBox.shrink(); + }, + ), + pressedColor: getEnteColorScheme(context).fillFaint, + trailingIcon: Icons.chevron_right_outlined, + trailingIconIsMuted: true, + onTap: () async {}, + ), MenuItemWidget( captionedTextWidget: const CaptionedTextWidget( title: "Analyze file ID 25728869",