diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index 76f4c548c..6a42a0a3b 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -240,9 +240,15 @@ Future _init(bool isBackground, {String via = ''}) async { // See https://gitlab.com/fdroid/fdroiddata/-/merge_requests/12671#note_1294346819 if (!UpdateService.instance.isFdroidFlavor()) { // unawaited(ObjectDetectionService.instance.init()); - unawaited(FaceMlService.instance.init()); - FaceMlService.instance.listenIndexOnDiffSync(); - FaceMlService.instance.listenOnPeopleChangedSync(); + if (flagService.faceSearchEnabled) { + unawaited(FaceMlService.instance.init()); + FaceMlService.instance.listenIndexOnDiffSync(); + FaceMlService.instance.listenOnPeopleChangedSync(); + } else { + if (LocalSettings.instance.isFaceIndexingEnabled) { + unawaited(LocalSettings.instance.toggleFaceIndexing()); + } + } } PersonService.init( EntityService.instance, diff --git a/mobile/lib/ui/settings/machine_learning_settings_page.dart b/mobile/lib/ui/settings/machine_learning_settings_page.dart index b74b33fe5..d401eb082 100644 --- a/mobile/lib/ui/settings/machine_learning_settings_page.dart +++ b/mobile/lib/ui/settings/machine_learning_settings_page.dart @@ -64,6 +64,7 @@ class _MachineLearningSettingsPageState @override Widget build(BuildContext context) { + final bool facesFlag = flagService.faceSearchEnabled; return Scaffold( body: CustomScrollView( primary: false, @@ -96,7 +97,9 @@ class _MachineLearningSettingsPageState children: [ _getMagicSearchSettings(context), const SizedBox(height: 12), - _getFacesSearchSettings(context), + facesFlag + ? _getFacesSearchSettings(context) + : const SizedBox.shrink(), ], ), ), diff --git a/mobile/lib/ui/settings_page.dart b/mobile/lib/ui/settings_page.dart index 7bdc19852..cc0064a30 100644 --- a/mobile/lib/ui/settings_page.dart +++ b/mobile/lib/ui/settings_page.dart @@ -144,7 +144,9 @@ class SettingsPage extends StatelessWidget { if (hasLoggedIn && flagService.internalUser) { contents.addAll([sectionSpacing, const DebugSectionWidget()]); - contents.addAll([sectionSpacing, const FaceDebugSectionWidget()]); + if (flagService.faceSearchEnabled) { + contents.addAll([sectionSpacing, const FaceDebugSectionWidget()]); + } } contents.add(const AppVersionWidget()); contents.add(const DeveloperSettingsWidget()); diff --git a/mobile/plugins/ente_feature_flag/lib/src/service.dart b/mobile/plugins/ente_feature_flag/lib/src/service.dart index 47539eeb5..8d7f22679 100644 --- a/mobile/plugins/ente_feature_flag/lib/src/service.dart +++ b/mobile/plugins/ente_feature_flag/lib/src/service.dart @@ -67,7 +67,7 @@ class FlagService { bool get mapEnabled => flags.mapEnabled; - bool get faceSearchEnabled => flags.faceSearchEnabled; + bool get faceSearchEnabled => internalUser || flags.faceSearchEnabled; bool get passKeyEnabled => flags.passKeyEnabled || internalOrBetaUser;